Corso PHP: 4. Variabili e tipi di dati

Prima di affrontare l’analisi della sintassi e dell’uso dei comandi del PHP, introduciamo il concetto di ‘Variabili’.

Le variabili sono contenitori usati per memorizzare valori.
Le variabili si impostano con l’operatore = (esempio $variabile=”valore”).

Il tipo di questi valori può essere:

  • boolean
  • integer
  • float (numero floating-point)
  • string
  • array
  • object
  • resource
  • NULL

Indipendentemente dal tipo di variabile vi sono alcune regole sintattiche che devono essere rispettate per definire una variabile in PHP:

  • Il nome di una variabile deve sempre essere preceduto dal segno $ (esempio $nome)
  • Nel nome della variabile sono consentite tutte le lettere (a..z, A..Z) e le cifre (0..9) più il segno di underscore (_)
  • Il primo carattere dopo il segno $ deve essere una lettera oppure _ (non può essere una cifra)
    Esempi validi: $_mia_variabile1, $var_2, $MiaVariabile ecc.
  • In PHP i nomi di variabili sono case sensitive che significa che le due variabili $miavariabile e $MiaVariabile sono considerate due variabili differenti




4.1   I tipi di variabili

boolean

E’ il tipo di dato usato per il valore logico. Assume quindi solo due valori Vero o Falso che sono rappresentati dalle costanti TRUE e FALSE. In realtà vero o falso dipendono dal valore memorizzato nella variabile secondo le seguenti regole:

–          Il valore intero 0 significa Falso
–          Il valore float 0.0 significa Falso
–          Una stringa vuota oppure una stringa con valore “0” significano Falso
–          Un array vuoto significa Falso
–          Il tipo speciale NULL significa Falso

Gli altri valori significano Vero. In generale per semplicità possiamo dire che un valore diverso da 0 stia a significare Vero.

integer

Formalmente un intero può essere espresso nel modo seguente:

  • decimale         : un numero con prima cifra [1-9] seguita da altre cifre [0-9] oppure 0 (es. 1234)
  • esadecimale   : prima cifra 0 seguita da [xX] e le altre cifre [0-9, a-f, A-F] (es. 0x3f)
  • ottale               : prima cifra 0 seguita dalle altre cifre [0-7] (es. 071)
  • binario            : prima cifra 0 seguita da [b] e le altre cifre [01] (es. 0b10011101)

float

Sono i numeri reali espressi con una parte intera, il punto decimale e i decimali. Può anche essere espresso nella forma esponenziale (Es. 7E-10).

Precisione del floating point
Tutti i sistemi computerizzati hanno un limite alla precisione quando trattano i numeri reali, dovuta alla capacità di memorizzare le cifre decimali che non può essere infinita. Il PHP ha il limite che corrisponde all’arrotondamento alla cifra decimale dell’ordine di 1.11 e-16. In alcuni calcoli matematici (non commerciali) questo può portare ad errori significativi considerando che l’errore si moltiplica e si amplifica con l’aumentare del numero di operazioni.
L’arrotondamento nei numeri float può anche portare ad errori nei confronti di due numeri. Varrà la pena dedicare un paragrafo all’analisi di questo problema in seguito.

Da notare che in alcuni casi si potrà vedere usato il termine double anziché float. Double è il termine usato in versioni più vecchie di PHP ed è ancora accettato per ragioni di compatibilità, mail termine corretto è ora float.

string

Le stringhe sono insiemi di caratteri delimitate da apici [‘] oppure virgolette [“]. Per esempio “questa è la mia stringa”.
La differenza tra l’uso degli apici o delle virgolette la vedremo in particolare in seguito. In generale si possono utilizzare entrambi i sistemi.
La lunghezza massima di una stringa è di 2.147.483.647 bytes.
Occorrerà prestare attenzione ai caratteri che si inseriscono nella stringa. Se la stringa contenesse delle virgolette non può semplicemente essere delimitata da virgolette perché si perderebbe l’evidenza di dove effettivamente finisse la stringa. Per esempio “questa è la “mia” stringa” è un esempio sbagliato. Si potrà scrivere ‘questa è la “mia” stringa’ oppure utilizzare le sequenze di escape, che hanno appunto lo scopo di rappresentare caratteri speciali. Le sequenze di escape vengono riconosciute dal sistema perché sono precedute dal carattere backslash \. Ovviamente questo significa che anche il carattere di backslash dovrà essere rappresentato come sequenza di escape. Vediamole in dettaglio:

  • \n          a capo (linefeed = LF o 0x0A (10) in ASCII)
  • \r           inizio riga (carriage return =  CR o 0x0D (13) in ASCII)
  • \t           tab orizzontale (HT o 0x09 (9) in ASCII)
  • \v           tab verticale (VT o 0x0B (11) in ASCII) (a partire dalla versione 5.2.5 di PHP)
  • \e          escape (ESC o 0x1B (27) in ASCII) (a partire dalla versione 5.4.0 di PHP)
  • \f           form feed (FF o 0x0C (12) in ASCII) (a partire dalla versione 5.2.5 di PHP)
  • \\           backslash
  • \$          dollaro
  • \”           virgolette

array

Un array è una tabella di elementi.
Un array può essere creato tramite il costrutto ‘array()’ oppure semplicemente assegnando un valore ai singoli elementi.

Contrariamente ai classici linguaggi di programmazione, il PHP permette di indicizzare gli array non solo mediante interi (gli indici della tabella), anche attraverso delle stringhe. Ad esempio se impostiamo un array come segue:

$a[“rosso”] = “A”;
$a[] = “B”;
$a[4] = “E”;
$a[“nero”] = “D”;
$a[] = 44;

la tabella risultante sarà:

array (
[rosso] => A
[0] => B
[4] => E
[nero] => D
[5] => 44
)

L’ultimo indice ha indice 5 perché l’interprete incrementa automaticamente gli indici omessi.

Oltre al costrutto visto sopra (assegnando un valore per mezzo dell’operatore =) si possono usare i costrutti che seguono per assegnare valori ad un array dotato di chiavi:

$array = array (
key  => value,
key2 => value2,
key3 => value3,

)

oppure

$array = [
key  => value,
key2 => value2,
key3 => value3,

]

Se si usano gli indici numerici dell’array, occorre ricordare che il primo elemento dell’array avrà indice 0 e non 1.

object
Un oggetto è un’istanza di una classe. Una classe è una collezione di variabili e di funzioni dette metodi. Una volta definita una classe è possibile istanziare uno o più oggetti della stessa classe.

La trattazione degli oggetti è materia del capitolo riguardante la programmazione ad oggetti (OOP = object Oriented Programming).

resource

Un dato di tipo resource è una variabile speciale che fa riferimento ad una risorsa esterna, ad esempio per la gestione di un file, la connessione ad un database, gestione di un PDF, di un file compresso ecc.

Ne vedremo l’uso in particolare quando tratteremo il database MySQL.

NULL

NULL rappresenta il valore di una variable senza valore. $var=NULL significa che $var non avrà alcun valore.

2 thoughts on “Corso PHP: 4. Variabili e tipi di dati”

  1. Ciao!!
    Non ho capito una cosa per quanto riguarda gli array;

    $a[“rosso”] = “A”;
    $a[] = “B”;
    $a[4] = “E”;
    $a[“nero”] = “D”;
    $a[] = 44;

    ….

    L’ultimo indice ha indice 5 perché l’interprete incrementa automaticamente gli indici omessi.

    Se l’ultimo indice viene interpretato come 5, il secondo indice non viene interpretato come 2?

    1. No, viene interpretato come primo indice numerico, quindi 0.
      L’altro viene interpretato 5 perché prima ha incontrato un 4

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *