Tipi di dati – Variabile

Variabili php

Il modo più importante per archiviare informazioni in un programma PHP è la variabile cioè un modo per nominare e bloccare qualsiasi valore si voglia riutilizzare. Essa può contenere diversi tipi di valori, ognuno dei quali ha un comportamento ed utilità differente. Analizzeremo brevemente i tipi di dato che PHP permette di utilizzare nel proprio codice. 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). LA sintassi abbiamo cominciato a vederla precedentemante.

PHP web development

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:
<?php
$vero = true;
$falso = false;
?>

variabile 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).
<?php
$int1 = 129;
$int2 = -715;
$int3 = 5 * 8;
?>

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:
<?php
$vm1 = 4.153; // cioè 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

Variabile 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 = ‘ “Ciao a tutti!” ‘;

?> echo $frase;
Questo codice stamperà la frase: ‘  “Ciao a tutti!”  ‘. Gli apici doppi ci consentono di usare le stringhe in una maniera più sofisticata. Poichè se all’interno della stringa delimitata da virgolette, PHP riconosce un nome di variabile, lo sostituisce con il valore della variabile stessa.

.

<?php
$nome = ‘Maria’ ;
echo “$nome è simpatica… “;   /* stampa : Maria è simpatica */

echo ‘$nome è simpatica… ‘;  /* stampa :$nome è simpatica */
?>
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:
<?php
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:
<?php
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 */

?>

Analisi

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.

heredoc

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 End of data). 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.
<?php
$name = “Ciccio”;
$stringa = <<<EOD
Il mio nome è $name
EOD;
echo $stringa;
?>
Questo codice stamperà ‘Il mio nome è Ciccio’, 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.