English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Tutorial básico de PHP

PHP 高级教程

PHP & MySQL

PHP 参考手册

Variables superglobales de PHP

超级全局变量在PHP 4.1.0之后被启用, 是PHP系统中自带的变量,在一个脚本的全部作用域中都可用。

Variables superglobales de PHP

PHP中预定义了几个超级全局变量(superglobals) ,这意味着它们在一个脚本的全部作用域中都可用。 你不需要特别说明,就可以在函数及类中使用。

PHP 超级全局变量列表:

  • $GLOBAlS

  • $_SERVER

  • $_REQUEST

  • $_POST

  • $_GET

  • $_FILES

  • $_ENV

  • $_COOKIE

  • $_SESSION

本章节我们将讲解几个常用的超级全局变量,其余变量我们在接下来几个章节会介绍到。

PHP $GLOBAlS

$GLOBAlS 是PHP的一个超级全局变量组,在一个PHP脚本的全部作用域中都可以访问。

$GLOBAlS 是一个包含了全部变量的全局组合数组。变量的名字就是数组的键。

以下示例介绍了如何使用超级全局变量 $GLOBAlS:

<?php 
$x = 75; 
$y = 25;
 
function addition() 
{ 
    $GLOBAlS['z'] = $GLOBAlS['x']; + $GLOBAlS['y']; 
}
 
addition(); 
echo $z; 
?>
Prueba aquí ‹/›

以上示例中 z 是一个$GLOBAlS数组中的超级全局变量,该变量同样可以在函数外访问。

PHP $_SERVER

$_SERVER 是一个包含了诸如头信息(header)、路径(path)、以及脚本位置(script locations)等等信息的数组。这个数组中的项目由 Web 服务器创建。不能保证每个服务器都提供全部项目;服务器可能会忽略一些,或者提供一些没有在这里列举出来的项目。

以下示例中展示了如何使用$_SERVER中的元素:

<?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'];
?>
Prueba aquí ‹/›

La siguiente tabla enumera todos los elementos importantes de las variables $_SERVER:

Elemento/CódigoDescripción
$_SERVER['PHP_SELF']El nombre del archivo del script en ejecución, relacionado con el directorio raíz del documento. Por ejemplo, en la dirección http://example.com/test.php/En el script foo.bar, usando $_SERVER['PHP_SELF'] se obtendrá /test.php/foo.bar. La constante __FILE__ contiene la ruta completa y el nombre del archivo actual (por ejemplo, el que contiene) desde PHP 4.3.0 versión, si PHP se ejecuta en modo de línea de comandos, esta variable contendrá el nombre del script. En versiones anteriores, esta variable no está disponible.
$_SERVER['GATEWAY_INTERFACE']La versión del estándar CGI utilizado por el servidor; por ejemplo, "CGI/1.1"。
$_SERVER['SERVER_ADDR']La dirección IP del servidor en el que se ejecuta el script actual.
$_SERVER['SERVER_NAME']El nombre del host del servidor en el que se ejecuta el script actual. Si el script se ejecuta en un host virtual, el nombre es el valor establecido por ese host virtual. (Por ejemplo: www.w3(codebox.com)
$_SERVER['SERVER_SOFTWARE']La cadena de identificación del servidor, proporcionada en la información de la cabecera de la respuesta al solicitar. (Por ejemplo: Apache/2.2.24)
$_SERVER['SERVER_PROTOCOL']El nombre y la versión del protocolo de comunicación utilizado al solicitar la página. Por ejemplo, "HTTP/1.0".
$_SERVER['REQUEST_METHOD']El método de solicitud utilizado para acceder a la página; por ejemplo, "GET", "HEAD", "POST", "PUT".
$_SERVER['REQUEST_TIME']El timestamp del inicio de la solicitud. Desde PHP 5.1.0 está disponible. (Por ejemplo:1377687496)
$_SERVER['QUERY_STRING']La cadena de consulta (query string), si hay alguna, se utiliza para acceder a la página.
$_SERVER['HTTP_ACCEPT']El contenido del campo Accept en la cabecera de la solicitud actual, si existe.
$_SERVER['HTTP_ACCEPT_CHARSET']El contenido del campo Accept en la cabecera de la solicitud actual-El contenido del campo Charset: si existe. Por ejemplo: "iso-8859-1,*,utf-8"。
$_SERVER['HTTP_HOST']El contenido del campo Host: en la cabecera de la solicitud actual, si existe.
$_SERVER['HTTP_REFERER']Dirige al usuario agente a la página anterior de la página actual (si existe). Se determina por la configuración del usuario agente. No todos los usuarios agente establecen este valor, algunos incluso proporcionan la función de modificar HTTP_REFERER. En resumen, este valor no es confiable.)
$_SERVER['HTTPS']Si el script se accede a través del protocolo HTTPS, se establece en un valor no vacío.
$_SERVER['REMOTE_ADDR']La dirección IP del usuario que está navegando la página actual.
$_SERVER['REMOTE_HOST']El nombre del host del usuario que está navegando la página actual. La resolución inversa de DNS no depende de $_SERVER['REMOTE_ADDR'].
$_SERVER['REMOTE_PORT']El puerto utilizado por el usuario para conectarse al servidor web en la máquina del usuario.
$_SERVER['SCRIPT_FILENAME']La ruta absoluta del script que se está ejecutando.
$_SERVER['SERVER_ADMIN']Este valor especifica el parámetro SERVER_ADMIN en el archivo de configuración del servidor Apache. Si el script se ejecuta en un host virtual, este valor es el de ese host virtual (por ejemplo: someone@w3(codebox.com)
$_SERVER['SERVER_PORT']El puerto utilizado por el servidor web. El valor predeterminado es "8"0". Si se utiliza una conexión segura SSL, este valor es el puerto HTTP configurado por el usuario.
$_SERVER['SERVER_SIGNATURE']Una cadena que contiene la versión del servidor y el nombre del host virtual.
$_SERVER['PATH_TRANSLATED']La ruta básica del sistema de archivos en el que se encuentra el script actual (no el directorio raíz del documento). Es el resultado después de que el servidor realiza la imagen virtual a la ruta real.
$_SERVER['SCRIPT_NAME']Incluye la ruta del script actual. Esto es muy útil cuando la página necesita apuntar a sí misma. La constante __FILE__ contiene la ruta completa y el nombre del archivo del script actual (por ejemplo, archivos incluidos).
$_SERVER['SCRIPT_URI']URI se utiliza para especificar la página a visitar. Por ejemplo "/"index.html"。

PHP $_REQUEST

PHP $_REQUEST se utiliza para recopilar los datos de envío de formularios HTML.

El siguiente ejemplo muestra un formulario con un campo de entrada (input) y un botón de envío (submit): Cuando el usuario hace clic en el botón "Enviar" para enviar los datos del formulario, los datos del formulario se enviarán al archivo de script especificado en el atributo action de la etiqueta <form>. En este ejemplo, especificamos el archivo para procesar los datos del formulario. Si desea que otro archivo PHP procese los datos, puede modificar el nombre del archivo de script especificado. Luego, podemos usar la variable global super $_REQUEST para recopilar los datos de los campos input del formulario:

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

PHP $_POST

PHP $_POST se utiliza ampliamente para recopilar datos de formularios, especificando el atributo en la etiqueta HTML form: "method="post".

El siguiente ejemplo muestra un formulario con un campo de entrada (input) y un botón de envío (submit): Cuando el usuario hace clic en el botón "Enviar" para enviar los datos del formulario, los datos del formulario se enviarán al archivo de script especificado en el atributo action de la etiqueta <form>. En este ejemplo, especificamos el archivo para procesar los datos del formulario. Si desea que otro archivo PHP procese los datos, puede modificar el nombre del archivo de script especificado. Luego, podemos usar la variable global super $_POST para recopilar datos de los campos input del formulario:

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

PHP $_GET

PHP $_GET se utiliza ampliamente para recopilar datos de formularios, especificando el atributo en la etiqueta HTML form: "method="get".

$_GET también puede recopilar datos enviados en la URL.

Supongamos que tenemos una página HTML de enlace que contiene parámetros:

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

Cuando el usuario hace clic en el enlace "Test $GET", los parámetros "subject" y "web" se enviará a "test_get.php", y puede usar la variable $_GET en el archivo "test_get.php" para obtener estos datos.

El siguiente ejemplo muestra el código del archivo "test_get.php":

<html>
<body>
 
<?php 
echo "Estudio" . $_GET['subject'] . " @ " . $_GET['web'];
?>
 
</body>
</html>
Prueba aquí ‹/›

Consejo: Si desea aprender más sobre $_POST y $_GET, por favor visite nuestro Formularios PHP Capítulo.