Gennaio 2, 2023

Variabili superglobali in PHP

Le variabili superglobali sono variabili predefinite in PHP che sono sempre disponibili in qualsiasi contesto del programma, sia all’interno di funzioni o metodi che all’esterno di essi. Ciò significa che non è necessario fare alcun passaggio esplicito di queste variabili da una funzione all’altra o utilizzare la parola chiave global per accedervi.

Ecco alcuni esempi di variabili superglobali in PHP:

$_GET: questa variabile contiene i parametri passati allo script attraverso l’URL. Ad esempio, se si accede a uno script PHP con un URL del tipo “http://esempio.com/script.php?nome=Mario&cognome=Rossi“, allora $_GET['nome'] conterrà “Mario” e $_GET['cognome'] conterrà “Rossi”.

$_POST: questa variabile contiene i dati inviati allo script attraverso un modulo HTML con il metodo “POST”. Ad esempio, se si ha un modulo HTML con due campi di input per il nome e il cognome, questi valori saranno disponibili all’interno dello script PHP come $_POST['nome'] e $_POST['cognome'].

$_FILES: questa variabile contiene informazioni sui file caricati attraverso un modulo HTML con il metodo “POST”. Ad esempio, se si ha un modulo HTML con un campo per il caricamento di un file, il nome del file sarà disponibile all’interno dello script PHP come $_FILES['nome_del_campo']['name'].

$_COOKIE: questa variabile contiene i cookie inviati dal browser allo script PHP. Ad esempio, se si imposta un cookie chiamato “nome” con il valore “Mario”, questo sarà disponibile all’interno dello script PHP come $_COOKIE['nome'].

$_SESSION: questa variabile contiene i dati della sessione corrente. I dati di sessione sono disponibili in tutte le pagine del sito finché la sessione non viene chiusa o viene eliminato il cookie di sessione.

Per utilizzare la variabile $_SESSION, è necessario innanzitutto avviare una sessione con la funzione session_start(). Ad esempio, per impostare un valore di sessione chiamato “nome” con il valore “Mario”, si può utilizzare il seguente codice:

<?php
session_start();
$_SESSION['nome'] = 'Mario';
?>

Per accedere ai dati di sessione in altre pagine del sito, è sufficiente avviare nuovamente la sessione con session_start() e quindi accedere alla variabile $_SESSION come si farebbe con qualsiasi altra variabile. Ad esempio:

<?php session_start(); echo $_SESSION['nome']; // stamperà "Mario" ?>

Le variabili superglobali sono molto utili perché consentono di accedere a informazioni importanti senza doverle passare esplicitamente da una funzione all’altra o utilizzare la parola chiave global. Tuttavia, è importante utilizzarle con cautela, poiché possono rendere il codice più difficile da leggere e mantenere. In particolare, è consigliabile evitare di modificare direttamente le variabili superglobali, a meno che non sia strettamente necessario. Invece, è preferibile creare delle variabili locali all’interno della funzione o del metodo e assegnare loro i valori delle variabili superglobali solo se necessario.

Riassumendo:

Variabile superglobaleDescrizione
$_SERVERContiene informazioni sul server web e sull’ambiente di esecuzione del programma
$_GETContiene i parametri passati allo script attraverso l’URL
$_POSTContiene i dati inviati allo script attraverso un modulo HTML con il metodo “POST”
$_FILESContiene informazioni sui file caricati attraverso un modulo HTML con il metodo “POST”
$_COOKIEContiene i cookie inviati dal browser allo script PHP
$_SESSIONContiene i dati della sessione corrente
$_REQUESTContiene i dati inviati allo script sia attraverso l’URL (con il metodo “GET”) che attraverso un modulo HTML (con il metodo “POST”)
$_ENVContiene le variabili d’ambiente passate al processo PHP

Let’s code!