超级全局变量
PHP中预定义了几个超级全局变量(superglobals) ,这意味着它们在一个脚本的全部作用域中都可用。
PHP 超级全局变量列表:
- $GLOBALS
- $_SERVER
- $_REQUEST
- $_POST
- $_GET
- $_FILES
- $_ENV
- $_COOKIE
- $_SESSION
$GLOBALS
$GLOBALS 是 PHP 中的一个超全局数组,用于存储全局作用域中的全部变量,包括全局作用域、函数作用域以及类方法作用域中的变量。这个数组的键是变量名,值是对应变量的值。
解释:
- $GLOBALS 是一个关联数组,其键是全局变量的名称,值是对应的变量的值。
- 通过 $GLOBALS 数组,可以在任何地方访问全局作用域中的变量,而不需要使用 global 关键字。
举例:
$GLOBALS['z'] = $GLOBALS['x'] + $GLOBALS['y']; } addition(); echo $z; // 输出 15 ?>
在这个示例中,我们定义了两个全局变量 $x 和 $y。在 addition() 函数内部,我们通过 $GLOBALS 数组访问了这两个全局变量,并将它们相加并存储在 $GLOBALS['z'] 中。最后,我们在全局作用域中输出了 $z 的值,得到了 15。
$_SERVER
$_SERVER 是 PHP 中的一个超全局数组,用于存储服务器和执行环境的信息。这些信息包括 HTTP 请求、服务器信息、运行环境等。$_SERVER 数组的键是服务器提供的变量名,值是相应的信息。
这个数组包含了许多键值对,其中一些常见的键包括:
- $_SERVER['PHP_SELF']: 当前执行脚本的文件名。
- $_SERVER['SERVER_NAME']: 当前运行脚本所在服务器的主机名。
- $_SERVER['HTTP_HOST']: 当前请求的 Host 头部内容。
- $_SERVER['HTTP_USER_AGENT']: 当前用户代理(浏览器)的字符串。
- $_SERVER['REMOTE_ADDR']: 客户端的 IP 地址。
这些信息可以用于调试、日志记录、用户识别等用途。下面是一个简单的示例,演示如何使用 $_SERVER 变量:
'; echo '当前运行脚本所在服务器的主机名:' . $_SERVER['SERVER_NAME'] . '
'; echo '当前请求的 Host 头部内容:' . $_SERVER['HTTP_HOST'] . '
'; echo '当前用户代理(浏览器)的字符串:' . $_SERVER['HTTP_USER_AGENT'] . '
'; echo '客户端的 IP 地址:' . $_SERVER['REMOTE_ADDR'] . '
'; ?>这个示例将输出当前执行脚本的文件名、服务器主机名、HTTP Host、用户代理和客户端的 IP 地址。
$_REQUEST
$_REQUEST 是 PHP 中的一个超全局数组,用于收集 HTML 表单提交的数据,同时也可以接收 URL 参数。它是 $_GET、$_POST 和 $_COOKIE 的组合。当页面请求方式是 GET 或 POST 时,$_REQUEST 都可以接收到数据。
这个数组的键是表单元素的名称,值是用户输入的数据。值得注意的是,使用 $_REQUEST 可能会存在安全风险,因为它可以同时接收来自用户 GET 请求和 POST 请求的数据,这可能导致意外的数据混入。
下面是一个简单的示例,演示如何使用 $_REQUEST 获取表单提交的数据:
// 收集表单数据并输出 $name = $_REQUEST['name']; if (empty($name)) { echo "Name is empty"; } else { echo "Hello, $name!"; } } ?>在这个示例中,我们创建了一个简单的表单,用户可以输入名字。当用户提交表单时,PHP 代码部分通过 $_REQUEST['name'] 获取表单中输入的名字,并输出相应的问候语。
$_POST
$_POST 是 PHP 中的一个超全局数组,用于收集通过 POST 方法提交的表单数据。与 $_GET 不同,$_POST 方法将用户输入的数据发送到服务器,但是不会在 URL 中显示这些数据。这使得 $_POST 更适合处理敏感信息或大量数据的提交。
这个数组的键是表单元素的名称,值是用户输入的数据。通过 $_POST,可以方便地从表单中获取用户提交的数据进行处理。
下面是一个简单的示例,演示如何使用 $_POST 获取表单提交的数据:
// 收集表单数据并输出 $name = $_POST['name']; if (empty($name)) { echo "Name is empty"; } else { echo "Hello, $name!"; } } ?>在这个示例中,我们创建了一个简单的表单,用户可以输入名字。当用户提交表单时,PHP 代码部分通过 $_POST['name'] 获取表单中输入的名字,并输出相应的问候语。
$_GET
$_GET 是 PHP 中的一个超全局数组,用于收集通过 URL 参数传递的数据。当用户在浏览器地址栏中输入 URL 或者通过链接跳转页面时,可以使用 $_GET 来获取 URL 中的参数值。
这个数组的键是 URL 参数的名称,值是参数的值。通过 $_GET,可以方便地从 URL 中获取参数传递的数据进行处理。
下面是一个简单的示例,演示如何使用 $_GET 获取 URL 参数的数据:
$name = $_GET['name']; echo "Hello, $name!"; } else { echo "Name parameter is not set"; } ?>
在这个示例中,假设 URL 中包含参数 name=Alice,当用户访问这个页面时,PHP 代码部分使用 $_GET['name'] 获取 URL 中传递的名字参数,并输出相应的问候语。如果 URL 中没有传递参数,则会输出提示信息。
关注我,不迷路,共学习,同进步
关注我,不迷路,共学习,同进步