在函数内部定义的变量拥有局部作用域,即只能在函数内部使用。
function foo() {
$x = 1; // $x拥有局部作用域
echo $x;
}
foo(); // 输出 1
echo $x; // 报错,$x未定义
在函数外部定义的变量拥有全局作用域,即在整个脚本中都可以使用。
$x = 1; // $x拥有全局作用域
function foo() {
echo $x;
}
foo(); // 输出 1
echo $x; // 输出 1
使用static关键字定义的变量拥有静态作用域,即在函数调用结束后不会被销毁,下次调用该函数时仍然存在。
function foo() {
static $x = 0; // $x拥有静态作用域
echo $x;
$x++;
}
foo(); // 输出 0
foo(); // 输出 1
foo(); // 输出 2
PHP提供了一些预定义的全局变量,称为超级全局变量,可以在脚本的任何地方访问。
echo $_SERVER['HTTP_HOST']; // 输出当前域名
echo $_GET['id']; // 输出GET请求中id参数的值