Variabili costanti operatori e riferimenti in PHP
Variabili e Operatori in PHP
Questo codice mostra i concetti fondamentali delle variabili in PHP. Analizziamo ogni parte:
Tipologie di Variabili
$numero = 10;
$stringa = "Stringa";
$variabileInziale = null;
$booleano = true;
In PHP le variabili iniziano sempre con il simbolo $ e possono contenere diversi tipi di dati:
- Numeri (interi o decimali)
- Stringhe (testo racchiuso tra virgolette)
- Null (valore vuoto/nullo)
- Booleani (true/false - quando stampati,
truediventa1efalsediventa una stringa vuota)
Assegnamento per Riferimento
$a = 10;
$b = &$a;
$b = 20;
echo "Valore di \$a: $a\n"; // diventa 20
echo "Valore di \$b: $b\n"; // diventa 20
Il simbolo & crea un riferimento: $b non è una copia di $a, ma punta alla stessa area di memoria. Quando modifichi una delle due variabili, cambia anche l'altra!
Controllo dell'Esistenza: isset()
$variabile = "Test";
$risultato = isset($variabile);
echo $risultato; // stampa 1 (true)
La funzione isset() verifica se:
- La variabile esiste
- Il suo valore non è
null
Restituisce true (mostrato come 1) se entrambe le condizioni sono soddisfatte.
Definizione di Costanti
Ci sono due modi per creare costanti:
define("APP_VERSION", "v1.2.34");
echo APP_VERSION; // Non serve il simbolo $
const NUMERO_FISSO = 122;
Differenze importanti:
- Le costanti non usano il simbolo
$ constnon può essere usato dentro strutture condizionali (if/else)define()può essere usato ovunque nel codice
Escaping dei Caratteri
Quando usi virgolette dentro stringhe, devi "scappare" i caratteri speciali:
echo "l'altro giorno \"gianmarco\""; // Corretto con \"
echo 'l\'altro giorno "gianmarco"'; // Corretto con \'
- Nelle doppie virgolette: usa
\"per le virgolette interne - Nelle singole virgolette: usa
\'per gli apostrofi interni
Heredoc: Testi Multi-linea
$testo2 = <<<TESTO_DEL_PROF
questo è un testo multi-line
posso scrivere all'infinito
TESTO_DEL_PROF;
L'heredoc permette di scrivere testi su più righe senza problemi di virgolette. Attenzione: non lasciare spazi dopo il marker di chiusura!
Nuovi Operatori di Confronto
$a === $b→ Uguaglianza stretta (stesso valore E stesso tipo)$a !== $b→ Diversità stretta (valore o tipo diversi)$a <=> $b→ Operatore spaceship (restituisce -1, 0, o 1 a seconda se $a è minore, uguale o maggiore di $b)
Questi operatori sono molto utili per confronti precisi e ordinamenti!
// tipologia di variabili
$numero = 10;
$stringa = "Stringa";
$variabileInziale = null; // variabile dichiarata ma con valore null
$booleano = true; // viene convertito ad 1 quando è true, '' quando è false
$a = 10; // Variabile originale
$b = &$a; // Assegnamento per riferimento
$b = 20; // Modifico $b
echo "Valore di \$a: $a\n"; // diventa 20
echo "Valore di \$b: $b\n"; // diventa 20
// comando isset();
// verifica se una variabile è definita e se il suo valore non è // NULLO (null)
$variabile = "Test";
$risultato = isset($variabile);
echo $risultato; // true --> quindi, 1
// definizione di costanti
define("APP_VERSION", "v1.2.34");
echo APP_VERSION; // la stampa o utilizzo della costante non richiede il simbolo $
const NUMERO_FISSO = 122; // altro modo per dichiarare una costante. ATTENZIONE: non può essere dichiarato all'interno di una istruzione condizionale if/else
// escaping
echo "l'altro giorno "gianmarco""; // Errore
echo "l'altro giorno \"gianmarco\""; // Corretto
echo 'l'altro giorno "gianmarco"'; // errore
echo 'l\'altro giorno "gianmarco"'; // corretto
// heredoc (mai lasciare spazi dopo il marker!)
$testo2 = <<<TESTO_DEL_PROF
questo è un testo multi-line
posso scrivere all'infinito
TESTO_DEL_PROF;
// operatori (nuovi)
// $a === $b uguaglianza stretta
// $a !== $b diverso ma con controllo sul tipo
// $a <==> $b spaceship