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, true diventa 1 e false diventa 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 $
  • const non 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