Variabili globali PHP - Variabili superglobali

Le variabili superglobali sono state introdotte in PHP 4.1.0 e sono variabili innate disponibili in tutto lo scope.

Variabili globali PHP - Variabili superglobali

Molte variabili predefinite in PHP sono "superglobali", il che significa che sono disponibili in tutto lo scope dello script. Non è necessario eseguire global $variable; per accedervi in una funzione o un metodo.

Queste variabili superglobali sono:

  • $GLOBALS
  • $_SERVER
  • $_REQUEST
  • $_POST
  • $_GET
  • $_FILES
  • $_ENV
  • $_COOKIE
  • $_SESSION

Questa sezione presenterà alcune variabili superglobali e altre saranno illustrate in capitoli successivi.

$GLOBALS - Riferimento a tutte le variabili disponibili nel contesto globale

La variabile globale $GLOBALS viene utilizzata per accedere alle variabili globali in qualsiasi posizione del script di PHP (sia da una funzione o un metodo).

PHP memorizza tutte le variabili globali in un array chiamato $GLOBALS[index]. Il nome della variabile è la chiave dell'array.

Esempio di come utilizzare la variabile superglobale $GLOBALS:

Esempio

<?php 
$x = 75; 
$y = 25;
function addition() { 
  $GLOBALS['z'] = $GLOBALS['x'] + $GLOBALS['y']; 
}
addition(); 
echo $z; 
?>

Esempio di esecuzione

Nel esempio sopra, poiché z è una variabile dell'array $GLOBALS, può essere acceduta anche al di fuori della funzione.

PHP $_SERVER

La variabile superglobale $_SERVER memorizza informazioni riguardanti gli header, i percorsi e la posizione dello script.

Esempio di come utilizzare alcuni elementi di $_SERVER:

Esempio

<?php 
echo $_SERVER['PHP_SELF'];
echo "<br>";
echo $_SERVER['SERVER_NAME'];
echo "<br>";
echo $_SERVER['HTTP_HOST'];
echo "<br>";
echo $_SERVER['HTTP_REFERER'];
echo "<br>";
echo $_SERVER['HTTP_USER_AGENT'];
echo "<br>";
echo $_SERVER['SCRIPT_NAME'];
?>

Esempio di esecuzione

La tabella seguente elenca i principali elementi che puoi accedere in $_SERVER:

Elemento/Codice Descrizione
$_SERVER['PHP_SELF'] Restituisce il nome del file dello script che si sta eseguendo.
$_SERVER['GATEWAY_INTERFACE'] Restituisce la versione della specifica CGI utilizzata dal server.
$_SERVER['SERVER_ADDR'] Restituisce l'indirizzo IP del server su cui esegue lo script.
$_SERVER['SERVER_NAME'] Restituisce il nome dell'host del server su cui esegue lo script (ad esempio www.codew3c.com).
$_SERVER['SERVER_SOFTWARE'] Restituisce la stringa di identificazione del server (ad esempio Apache/2.2.24).
$_SERVER['SERVER_PROTOCOL'] Restituisce il nome e la versione del protocollo di comunicazione utilizzato per la richiesta della pagina (ad esempio, "HTTP/1.0").
$_SERVER['REQUEST_METHOD'] Restituisce il metodo di richiesta utilizzato per accedere alla pagina (ad esempio POST).
$_SERVER['REQUEST_TIME'] Restituisce il timestamp all'inizio della richiesta (ad esempio 1577687494).
$_SERVER['QUERY_STRING'] Restituisce la stringa di ricerca, se è stata raggiunta questa pagina tramite stringa di ricerca.
$_SERVER['HTTP_ACCEPT'] Restituisce l'intestazione della richiesta proveniente dalla richiesta corrente.
$_SERVER['HTTP_ACCEPT_CHARSET'] Restituisce l'intestazione Accept_Charset proveniente dalla richiesta corrente (ad esempio utf-8, ISO-8859-1)
$_SERVER['HTTP_HOST'] Restituisce l'intestazione Host proveniente dalla richiesta corrente.
$_SERVER['HTTP_REFERER'] Restituisce l'URL completo della pagina corrente (non affidabile, poiché non tutti gli user agent lo supportano).
$_SERVER['HTTPS'] Se è stato utilizzato il protocollo HTTP sicuro per interrogare lo script.
$_SERVER['REMOTE_ADDR'] Restituisce l'indirizzo IP dell'utente che sta navigando la pagina corrente.
$_SERVER['REMOTE_HOST'] Restituisce il nome dell'host dell'utente che sta navigando la pagina corrente.
$_SERVER['REMOTE_PORT'] Restituisce il numero di porta utilizzato per connettersi al server web sul computer dell'utente.
$_SERVER['SCRIPT_FILENAME'] Restituisce il percorso assoluto dello script corrente.
$_SERVER['SERVER_ADMIN'] Questo valore indica il parametro SERVER_ADMIN nella configurazione del file di configurazione del server Apache.
$_SERVER['SERVER_PORT'] Porta utilizzata dal server web. Il valore predefinito è "80".
$_SERVER['SERVER_SIGNATURE'] Restituisce la versione del server e il nome del host virtuale.
$_SERVER['PATH_TRANSLATED'] Percorso di base del file system in cui si trova lo script (non la directory root del documento).
$_SERVER['SCRIPT_NAME'] Restituisce il percorso del script corrente.
$_SERVER['SCRIPT_URI'] Restituisce l'URI della pagina corrente.

PHP $_REQUEST

PHP $_REQUEST viene utilizzato per raccogliere i dati del modulo inviati tramite HTML.

Esempio che mostra un modulo con campi di input e pulsante di invio. Dopo che l'utente clicca il pulsante di invio per inviare i dati del modulo, i dati del modulo vengono inviati al file specificato nell'attributo action del tag <form>. Nel presente esempio, abbiamo specificato il file stesso per elaborare i dati del modulo. Se si desidera utilizzare un altro file PHP per elaborare i dati del modulo, modificarlo con il nome del file scelto. Poi possiamo utilizzare la variabile superglobale $_REQUEST per raccogliere i valori dei campi input:

Esempio

<html>
<body>
<form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">
Nome: <input type="text" name="fname">
<input type="submit">
</form>
<?php 
$name = $_REQUEST['fname']; 
echo $name; 
?>
</body>
</html>

Esempio di esecuzione

PHP $_POST

PHP $_POST viene ampiamente utilizzato per raccogliere i dati del modulo inviati tramite il metodo "post" di un modulo HTML. $_POST viene anche utilizzato spesso per trasmettere variabili.

Esempio che mostra un modulo con campi di input e pulsante di invio. Dopo che l'utente clicca il pulsante di invio per inviare i dati, i dati del modulo vengono inviati al file specificato nell'attributo action del tag <form>. Nel presente esempio, abbiamo specificato il file stesso per elaborare i dati del modulo. Se si desidera utilizzare un altro file PHP per elaborare i dati del modulo, sostituirlo con il nome del file scelto. Poi possiamo utilizzare la variabile superglobale $_POST per raccogliere i valori dei campi di input:

Esempio

<html>
<body>
<form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">
Nome: <input type="text" name="fname">
<input type="submit">
</form>
<?php 
$name = $_POST['fname'];
echo $name; 
?>
</body>
</html>

Esempio di esecuzione

PHP $_GET

PHP $_GET può essere utilizzato anche per raccogliere i dati del modulo HTML inviati (method="get").

$_GET può anche raccogliere i dati inviati nell'URL.

Supponiamo di avere una pagina che contiene un collegamento con parametri:

<html>
<body>
<a href="test_get.php?subject=PHP&web=codew3c.com">Test $GET</a>
</body>
</html>

Quando l'utente fa clic sul link "Test $GET", i parametri "subject" e "web" vengono inviati a "test_get.php", quindi puoi accedere a questi valori in "test_get.php" tramite $_GET.

Esempio seguente è il codice di "test_get.php":

Esempio

<html>
<body>
<?php 
echo "In " . $_GET['web'] . " studiando " . $_GET['subject'];
?>
</body>
</html>

Esempio di esecuzione

Suggerimento:Verrai Modulo PHP In questa sezione hai imparato di più su $_POST e $_GET.