最新的Web开发教程
 

PHP 5个全局变量 - 超全局


超级全局在PHP 4.1.0版本引入,并内置变量,它们总是在所有的范围内有效。


PHP全局变量 - 超全局

在PHP中的几个预定义变量"superglobals" ,这意味着它们始终可以访问,无论范围-你可以从任何函数,类或文件的访问,而不必做任何特殊。

PHP的全局变量是:

  • $ GLOBALS
  • $ _ SERVER
  • $ _REQUEST
  • $ _ POST
  • $ _GET
  • $ _FILES
  • $ _ENV
  • $ _COOKIE
  • $ _SESSION

本章将介绍一些超全局,其余的将在后面的章节来解释。


PHP $ GLOBALS

$ GLOBALS是用于从任何位置访问在PHP脚本全局变量(也从函数或方法中)一个PHP超全局变量。

PHP店在名为$ GLOBALS [阵列中的所有全局变量index 。 该指数保持可变的名称。

下面的例子演示了如何使用超级全局变量$ GLOBALS:

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

在上面的例子中,由于z是变量存在于$ GLOBALS阵列内,这也是来自功能外部接近!


PHP $ _ SERVER

$ _ SERVER是一个PHP超全局变量持有约标题,路径和脚本位置的信息。

下面的例子演示了如何使用某些$ _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'];
?>
运行示例»

下表列出了可以去里面$ _SERVER中最重要的元素:

元/码 描述
$ _ SERVER [ 'PHP_SELF'] 返回当前正在执行脚本的文件名
$ _ SERVER [ 'GATEWAY_INTERFACE'] 返回通用网关接口的版本(CGI)服务器使用
$ _ SERVER [ 'SERVER_ADDR'] 返回主服务器的IP地址
$ _ SERVER [ 'SERVER_NAME'] 返回主服务器的名称(such as www.w3ii.com)
$ _ SERVER [ 'SERVER_SOFTWARE'] 返回服务器标识字符串(such as Apache/2.2.24)
$ _ SERVER [ 'SERVER_PROTOCOL'] 返回的名称和版本信息协议(such as HTTP/1.1)
$ _ SERVER [ 'REQUEST_METHOD'] 返回用于访问该页面的请求方法(such as POST)
$ _ SERVER [ 'REQUEST_TIME'] 返回请求的开始的时间戳(such as 1377687496)
$ _ SERVER [ 'QUERY_STRING'] 返回查询字符串,如果该页面通过查询字符串访问
$ _ SERVER [ 'HTTP_ACCEPT'] 返回当前请求的Accept报头
$ _ SERVER [ 'HTTP_ACCEPT_CHARSET'] 返回Accept_Charset头从当前请求(例如UTF-8,ISO-8859-1)
$ _ SERVER [ 'HTTP_HOST'] 返回从当前请求的主机头
$ _ SERVER [ 'HTTP_REFERER'] 返回当前页面的完整URL(不可靠的,因为并不是所有的用户代理支持)
$ _ SERVER [ 'HTTPS'] 是脚本通过安全的HTTP协议查询
$ _ SERVER [ 'REMOTE_ADDR'] 返回从用户正在浏览当前页面的IP地址
$ _ SERVER [ 'REMOTE_HOST'] 返回从用户正在浏览当前页面的主机名
$ _ SERVER [ 'REMOTE_PORT'] 返回被用户的机器上使用的端口与Web服务器进行通信
$ _ SERVER [ 'SCRIPT_FILENAME'] 返回当前执行脚本的绝对路径
$ _ SERVER [ 'SERVER_ADMIN'] 返回给Web服务器配置文件中的指令SERVER_ADMIN值(如果你的脚本在虚拟主机上运行,这将是该虚拟主机定义的值) (such as [email protected])
$ _ SERVER [ 'SERVER_PORT'] 返回正在使用的web服务器进行通信的服务器计算机上的端口(such as 80)
$ _ SERVER [ 'SERVER_SIGNATURE'] 返回其添加到服务器生成的网页服务器版本和虚拟主机名
$ _ SERVER [ 'PATH_TRANSLATED'] 返回到当前脚本的基于文​​件系统的路径
$ _ SERVER [ 'SCRIPT_NAME'] 返回当前脚本的路径
$ _ SERVER [ 'SCRIPT_URI'] 返回当前页面的URI

PHP $ _REQUEST

PHP $ _REQUEST是用来提交HTML表单后收集数据。

下面的例子示出了具有输入字段和提交按钮的形式。 当用户通过点击提交数据"Submit" ,则表格数据被发送到在指定的文件action的属性<form>标记。 在这个例子中,我们指出这个文件本身进行处理表单数据。 如果您想使用其他PHP文件来处理表单数据,替换与您所选择的文件名。 然后,我们就可以使用超级全局变量$ _REQUEST收集输入字段的值:

<html>
<body>

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

<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
    // collect value of input field
    $name = $_REQUEST['fname'];
    if (empty($name)) {
        echo "Name is empty";
    } else {
        echo $name;
    }
}
?>

</body>
</html>
运行示例»

PHP $ _ POST

PHP $ _ POST被广泛使用的方法=“邮报”提交HTML表单后,收集表单数据。 $ _ POST还广泛用于传递变量。

下面的例子示出了具有输入字段和提交按钮的形式。 当用户通过点击提交数据"Submit" ,则表格数据被发送到在指定的文件action的属性<form>标记。 在这个例子中,我们指向文件本身进行处理表单数据。 如果您想使用其他PHP文件来处理表单数据,替换与您所选择的文件名。 然后,我们就可以使用超级全局变量$ _ POST收集输入字段的值:

<html>
<body>

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

<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
    // collect value of input field
    $name = $_POST['fname'];
    if (empty($name)) {
        echo "Name is empty";
    } else {
        echo $name;
    }
}
?>

</body>
</html>
运行示例»

PHP $ _GET

PHP $ _GET也可以使用方法=“获得”提交HTML表单后,收集表单数据。

$ _GET还可以收集在URL发送的数据。

假设我们有一个包含带有参数的超链接的HTML页面:

<html>
<body>

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

</body>
</html>

当用户点击该链接"Test $GET" ,参数"subject""web"发送到"test_get.php" ,然后就可以访问他们的价值观"test_get.php"与$ _GET。

下面的例子示出了在代码"test_get.php"

<html>
<body>

<?php
echo "Study " . $_GET['subject'] . " at " . $_GET['web'];
?>

</body>
</html>
运行示例»

提示:您将了解更多关于$ _ POST和$ _GET在PHP形式的篇章。