RSS Feed Seguiteci su Twitter! Seguiteci su Facebook!
NEWS: Questo Blog e' rimasto inattivo per più di 18 mesi , quindi possono esserci link non funzionanti o altre problematiche dovute alla mancata manutenzione. Cosa vi piace o non in questo BLOG?, scrivete tutte le vostre recensioni in questa area commenti, provvederemo immediatamente a cancellare il Blog o migliorarlo nelle sue aspettative. Grazie.

Lezione08: I tipi di dato


Una variabile può contenere diversi tipi di valori, ognuno dei quali ha un comportamento ed un'utilità differente. Analizzeremo brevemente i tipi di dato che PHP permette di utilizzare all'interno del proprio codice premettendo che PHP, a differenza di altri linguaggi, associa il tipo di dato al valore e non alla variabile (ad esempio possiamo assegnare alla stessa variabile una stringa e poi un numero senza incorrere in alcun errore) ed effettua conversioni automatiche dei valori nel momento in cui siano richiesti tipi di dato differenti (ad esempio in un'espressione).

Valore booleano

I tipi di dato boolean servono per indicare i valori vero o falso all'interno di espressioni logiche. Il tipo booleano è associato alle variabili che contengono il risultato di un'espressione booleana oppure i valori true e false. Vediamo un rapido esempio:
$vero = true;
$falso = false;
?>

Intero

Un numero intero, positivo o negativo, il cui valore massimo (assoluto) può variare in base al sistema operativo su cui gira PHP, ma che generalmente si può considerare, per ricordarlo facilmente, di circa 2 miliardi (2 elevato alla 31esima potenza).
$int1 = 129;
$int2 = -715;
$int3 = 5 * 8; //$int3 vale 40
?>

Virgola mobile

Un numero decimale (a volte citato come "double" o "real"). Attenzione: per indicare i decimali non si usa la virgola, ma il punto. Anche in questo caso la dimensione massima dipende dalla piattaforma. Normalmente comunque si considera un massimo di circa 1.8e308 con una precisione di 14 cifre decimali. Si possono utilizzare le seguenti sintassi:
$vm1 = 4.153; // 4,153
$vm2 = 3.2e5; // 3,2 * 10^5, cioè 320.000
$vm3 = 4E-8; // 4 * 10^-8, cioè 4/100.000.000 = 0,00000004
?>

Stringa

Una stringa è un qualsiasi insieme di caratteri, senza limitazione normalmente contenuto all'interno di una coppia di apici doppi o apici singoli. Le stringhe delimitate da apici sono la forma più semplice, consigliata quando all'interno della stringa non vi sono variabili di cui vogliamo ricavare il valore:
$frase = 'Anna disse: "Ciao a tutti!" ma nessuno rispose';
echo $frase;

?> 
Questo codice stamperà la frase: 'Anna disse: "Ciao a tutti!" ma nessuno rispose'. Gli apici doppi ci consentono di usare le stringhe in una maniera più sofisticata, in quanto, se all'interno della stringa delimitata da virgolette PHP riconosce un nome di variabile, lo sostituisce con il valore della variabile stessa.
$nome = 'Anna';
echo "$nome è simpatica... a pochi"; // stampa: Anna è simpatica... a pochi
echo '$nome è simpatica... a pochi'; // stampa: $nome è simpatica... a pochi
echo "{$nome} è simpatica a pochi";  // è una sintassi alternativa, con lo stesso effetto della prima

?> 
Ci sono un paio di regole molto importanti da ricordare quando si usano le stringhe delimitate da apici o virgolette: siccome può capitare che una stringa debba contenere a sua volta un apice o un paio di virgolette, abbiamo bisogno di un sistema per far capire a PHP che quel carattere fa parte della stringa e non è il suo delimitatore. In questo caso si usa il cosiddetto 'carattere di escape', cioè la barra rovesciata (backslash: \). Vediamo alcuni esempi:
echo 'Torniamo un\'altra volta'; // stampa: Torniamo un'altra volta
echo "Torniamo un'altra volta"; // stampa: Torniamo un'altra volta
echo "Torniamo un\'altra volta"; // stampa: Torniamo un\'altra volta
echo 'Torniamo un'altra volta'; // causa un errore, perchè l'apostrofo viene scambiato per l'apice di chiusura
echo 'Anna disse "Ciao" e se ne andò'; // stampa: Anna disse "Ciao" e se ne andò
echo "Anna disse \"Ciao\" e se ne andò"; // stampa: Anna disse "Ciao" e se ne andò
echo 'Anna disse \"Ciao\" e se ne andò'; // stampa: Anna disse \"Ciao\" e se ne andò
echo "Anna disse "Ciao" e se ne andò"; // errore

?> 
Da questi esempi si può capire che il backslash deve essere utilizzato come carattere di escape quando vogliamo includere nella stringa lo stesso tipo di carattere che la delimita; se mettiamo un backslash davanti ad un apice doppio in una stringa delimitata da apici singoli (o viceversa), anche il backslash entrerà a far parte della stringa stessa, come si vede nel terzo e nel settimo esempio. Il backslash viene usato anche come 'escape di sè stesso', nei casi in cui vogliamo esplicitamente includerlo nella stringa:
echo "Questo: \"\\\" è un backslash";  // stampa: Questo: "\" è un backslash
echo 'Questo: \'\\\' è un backslash'); // stampa: Questo: '\' è un backslash
echo "Questo: '\' è un backslash");    // stampa: Questo: '\' è un backslash
echo "Questo: '\\' è un backslash");   // stampa: Questo: '\' è un backslash

?> 
Analizziamo il primo esempio: il primo backslash fa l'escape del primo paio di virgolette; il secondo backslash fa l'escape del terzo, che quindi viene incluso nella stringa; il quarto fa l'escape del secondo paio di virgolette. Il secondo esempio equivale al primo, con l'uso degli apici al posto delle virgolette. Negli ultimi due casi non è necessario fare l'escape del backslash, in quanto il backslash che vogliamo stampare non può essere scambiato per un carattere di escape (infatti vicino ad esso ci sono degli apici, che in una stringa delimitata da virgolette non hanno bisogno di escape). Di conseguenza, fare o non fare l'escape del backslash in questa situazione è la stessa cosa, e difatti i due esempi forniscono lo stesso risultato.
Passiamo ad esaminare l'ultimo modo di rappresentare le stringhe: la sintassi heredoc, poco utilizzata se non in situazioni nelle quali è necessario specificare stringhe molto lunghe. Questa ci consente di delimitare una stringa con i caratteri <<< seguiti da un identificatore (in genere si usa EOD, ma è solo una convenzione: è possibile utilizzare qualsiasi stringa composta di caratteri alfanumerici e underscore, di cui il primo carattere deve essere non numerico: la stessa regola dei nomi di variabile). Tutto ciò che segue questo delimitatore viene considerato parte della stringa, fino a quando non viene ripetuto l'identificatore seguito da un punto e virgola. Attenzione: l'identificatore di chiusura deve occupare una riga a sè stante, deve iniziare a colonna 1 e non deve contenere nessun altro carattere (nemmeno spazi vuoti) dopo il punto e virgola.
$nome = "Paolo";
$stringa = <<
Il mio nome è $nome
EOD;
echo $stringa;

?>
Questo codice stamperà 'Il mio nome è Paolo'. Infatti la sintassi heredoc risolve i nomi di variabile così come le virgolette. Rispetto a queste ultime, con questa sintassi abbiamo il vantaggio di poter includere delle virgolette nella stringa senza farne l'escape:
$frase = "ciao a tutti";
$stringa = <<
Il mio saluto è "$frase"
EOT;
echo $stringa;

?>
In questo caso stamperemo 'Il mio saluto è "ciao a tutti"'.

Array

Possiamo considerare un array come una variabile complessa, che contiene una serie di valori, ciascuno dei quali caratterizzato da una chiave, o indice che lo identifica univocamente. Facciamo un primo esempio, definendo un array composto di cinque valori:
$colori = array('bianco', 'nero', 'giallo', 'verde', 'rosso');
A questo punto ciascuno dei nostri cinque colori è caratterizzato da un indice numerico, che PHP assegna automaticamente a partire da 0. Per recuperare un determinato valore dalla variabile che contiene l'array, è sufficiente specificare il suo indice all'interno di parentesi quadre dietro al nome della variabile:
echo $colori[1]; // stampa 'nero'
echo $colori[4]; // stampa 'rosso'
Gli array verranno trattati in modo più approfondito nella prossima lezione.

Oggetto

Le classi e gli oggetti sono due degli argomenti sui quali gli sviluppatori di PHP hanno voluto puntare maggiormente nella nuova versione. L'argomento verrà trattato in modo approfondito nella Guida Teorica a PHP.

0 commenti:

Posta un commento

Proponi un'idea, segnalaci un problema.

Entra a far parte di CS3, pubblica i tuoi articoli.

Scrivi un commento!