PHP全局变量
PHP全局变量作用域不同与C,在函数内部不可以使用全局变量,要在函数内部使用全局变量需要,global $var或者使用超全局变量数组$GLOBALS['var']。
静态变量
PHP静态变量在函数内部存在,当函数执行完之后,静态变量不会被释放,其值依然存在。
函数内部声明的静态变量在函数外部是不能使用的。
//下面$a只有第一次调用test的时候会被初始化
function test()
{
static $a = 0;
echo $a;
$a++;
}
echo test(); //
echo test(); //
echo test(); //
echo test(); //
静态变量的声明
//不能用表达式的结果对静态变量赋值
static $int = 1+2; // wrong (as it is an expression)
static $int = sqrt(121);
超全局变量
$GLOBALS-- 引用全局作用域中可用的全部变量
$_SERVER-- 是一个包含了诸如头信息(header)、路径(path)、以及脚本位置(script locations)等等信息的数组。这个数组中的项目由 Web 服务器创建。不能保证每个服务器都提供全部项目;服务器可能会忽略一些,或者提供一些没有在这里列举出来的项目。
$_GET--接受通过URL传递过来的参数
$_POST--接受HTTP的POST方式提交的参数
$_FILES--接收POST上传的文件
$_REQUEST--默认情况下包含了 $_GET,$_POST 和 $_COOKIE 的数组。
$_SESSION--当前脚本可用 SESSION 变量的数组
$_ENV
$_COOKIE
$php_errormsg--输出PHP最新的错误消息
<?php
echo @$b;
echo $php_errormsg; //Undefined variable: b
$http_response_header-- HTTP 响应头,跟get_headers()函数类似,都是获取响应头的信息。
$argc — 传递给脚本的参数数目( register_argc_argv 打开时可用)
$argv — 传递给脚本的参数数组( register_argc_argv 打开时可用)