W3docs

Gestione delle Variabili in PHP

Scopri come creare, ispezionare, copiare e rimuovere variabili in PHP: isset, gettype, settype, riferimenti e variabili dinamiche.

Introduzione

La gestione delle variabili è l'insieme delle tecniche usate per creare, ispezionare, copiare e rimuovere i valori con cui lavora uno script PHP. Questa pagina va oltre la semplice assegnazione di un valore: copre la verifica dell'esistenza di una variabile (isset), la ricerca e la modifica del suo tipo (gettype / settype), la creazione di riferimenti e le funzionalità più dinamiche offerte da PHP — variabili variabili e funzioni variabili.

Se non hai mai dichiarato una variabile PHP prima d'ora, inizia con PHP Variables e PHP Data Types, poi torna qui per le tecniche di gestione.

Dichiarazione e assegnazione di variabili

In PHP il nome di una variabile inizia con il simbolo del dollaro ($) seguito da una lettera o un underscore. Non è necessario dichiarare un tipo — PHP lo deduce dal valore assegnato tramite l'operatore =.

<?php
$name  = "John";   // string
$age   = 30;        // integer
$price = 19.99;     // float
$active = true;     // boolean

PHP è tipizzato dinamicamente: la stessa variabile può contenere una stringa ora e un numero in seguito. La variabile assume semplicemente il tipo di ciò che è stato assegnato per ultimo.

Interpolazione di stringhe

All'interno di stringhe con virgolette doppie (e heredoc) PHP sostituisce una variabile con il suo valore. Le stringhe con virgolette singole vengono prese letteralmente e non eseguono l'interpolazione.

php— editable, runs on the server

Verifica e rimozione di variabili

Prima di leggere una variabile che potrebbe non esistere, verificane l'esistenza. Queste tre funzioni sono il cuore della gestione sicura delle variabili:

FunzioneRestituisce true quando...
isset($var)la variabile esiste e non è null
empty($var)la variabile non è impostata, è null, 0, "", "0", false o []
unset($var)(nessun valore restituito) distrugge la variabile così che isset diventi false
<?php
$user = null;
var_dump(isset($user));   // bool(false) — null counts as "not set"

$count = 0;
var_dump(empty($count));  // bool(true)  — 0 is "empty"

$temp = 10;
unset($temp);
var_dump(isset($temp));   // bool(false) — destroyed

isset è la funzione di controllo più usata, specialmente con le superglobali come $_GET e $_POST dove una chiave potrebbe essere assente.

Ispezione e modifica dei tipi

Poiché PHP deduce i tipi, a volte è necessario sapere quale tipo ha attualmente un valore, o forzare una conversione.

<?php
$price = 19.99;
echo gettype($price);     // double  (PHP's name for float)

$input = "42";
settype($input, "integer");
echo $input + 8;          // 50 — now a real integer, not the string "42"

Usa gettype per ottenere un nome di tipo leggibile e settype (o un cast come (int)) per convertire sul posto. Per i confronti, preferisci le funzioni type-aware is_int(), is_string(), is_array(), e così via.

Gestione avanzata delle variabili

Una volta acquisite le basi, PHP offre altre tre tecniche dinamiche. Usale con parsimonia — sono potenti ma possono compromettere la leggibilità.

Riferimenti a variabili

Un riferimento fa sì che due nomi puntino allo stesso valore sottostante. Si assegna con =& e qualsiasi modifica tramite un nome è visibile attraverso l'altro.

<?php
$count = 1;
$alias =& $count;   // $alias is now another name for $count
$alias = 5;
echo $count;        // 5 — changed through the reference

I riferimenti sono utili soprattutto quando si passano argomenti alle funzioni per riferimento (function f(&$x)), consentendo alla funzione di modificare la variabile del chiamante.

Variabili variabili

Una variabile variabile usa il valore di una variabile come nome di un'altra. La sintassi $$ legge la variabile interna per costruire il nome esterno.

<?php
$var = "greeting";
$$var = "Hello";     // creates $greeting
echo $greeting;      // Hello

Questo è occasionalmente utile per nomi di campo dinamici, ma un array associativo è quasi sempre più chiaro e sicuro.

Funzioni variabili

Se una variabile stringa contiene il nome di una funzione, aggiungendo () si chiama quella funzione dinamicamente.

<?php
$fn = "strlen";
echo $fn("Hello World");   // 11

Questo è utile per semplici tabelle di dispatch e callback. PHP moderno preferisce generalmente callable di prima classe o closure, ma le funzioni variabili rimangono valide e veloci.

Buone pratiche

  • Usa nomi significativi. $counter o $totalPrice documentano l'intento molto meglio di $x o $tmp.
  • Inizializza prima dell'uso. Leggere una variabile non definita genera un avviso; imposta un valore predefinito o proteggi con isset().
  • Evita i globali. Passa i valori come argomenti alle funzioni o incapsula lo stato in oggetti invece di affidarti a global. Vedi Variables Scope per capire perché l'isolamento dello scope è importante.
  • Preferisci gli array alle variabili variabili. Sono più facili da iterare, debuggare e comprendere.
  • Usa le dichiarazioni di tipo. I parametri tipizzati (function setAge(int $age)) intercettano gli errori precocemente e rendono il codice autodocumentante.

La gestione delle variabili in PHP è molto più della semplice assegnazione: include la verifica dell'esistenza con isset/empty, la rimozione di valori con unset, l'ispezione e la conversione dei tipi con gettype/settype, e gli strumenti dinamici — riferimenti, variabili variabili e funzioni variabili. Affidati alle tecniche semplici ed esplicite nel lavoro quotidiano e riserva quelle dinamiche ai rari casi che le richiedono davvero.

Practice

Pratica
In PHP, quali dei seguenti sono modi per gestire le variabili?
In PHP, quali dei seguenti sono modi per gestire le variabili?

Practice

Pratica
In PHP, quali dei seguenti sono modi per gestire le variabili?
In PHP, quali dei seguenti sono modi per gestire le variabili?
Was this page helpful?