学而实习之 不亦乐乎

PHP中变量的作用域

2019-01-23 21:04:28

一、PHP作用域规则

PHP具有6项基本的作用域规则:
1.内置超级全局变量可以在脚本的任何地方使用和可见。
2.常量,一旦被声明,可全局可见。
3.在一个脚本中声明的全局变量在整个脚本中是可见的,但不是在函数内部。
4.函数内部使用的变量声明为全局变量时,其名称要与全局变量名称一致。
5.在函数内部创建并被声明为静态的变量,无法在函数外部可见,但是可以在函数的多次执行中保持该值。
6.在函数内部创建的变量对函数来说是本地的,而当函数终止时,该变量也就不存在了。

二、超级全局变量

全局变量列表如下:
$GLOBALS    引用全局作用域中可用的全部变量,用于在 PHP 脚本中的任意位置访问全局变量(从函数或方法中均可)。
$_SERVER    这种超全局变量保存关于报头、路径和脚本位置的信息。
$_REQUEST    用于收集 HTML 表单提交的数据。
$_POST    广泛用于收集提交 method="post" 的 HTML 表单后的表单数据。$_POST 也常用于传递变量。
$_GET    也可用于收集提交 HTML 表单 (method="get") 之后的表单数据。也可以收集 URL 中的发送的数据。
$_FILES    用于文件上传。
$_FILES["file"]["name"] - 被上传文件的名称
$_FILES["file"]["type"] - 被上传文件的类型
$_FILES["file"]["size"] - 被上传文件的大小,以字节计
$_FILES["file"]["tmp_name"] - 存储在服务器的文件的临时副本的名称
$_FILES["file"]["error"] - 由文件上传导致的错误代码

$_ENV
$_COOKIE
$_SESSION

超级全局变量应用示例:

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