🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
## 变量范围 变量的范围即它定义的上下文背景,大部分的 PHP 变量只有一个单独的范围。 ### 文件包含 ``` <?php $a = 1; include 'b.php'; ?> ``` b.php 内容如下: ``` <?php $b = $a + 1; echo $b; // 2 ?> ``` ### 函数局部变量 在用户自定义函数中,一个局部函数范围将被引入。任何用于函数内部的变量按缺省情况将被限制在局部函数范围内。例如: ``` <?php $a = 1; // global scope function test() { echo $a; // reference to local scope variable } test(); ?> ``` ### global 关键字 ``` <?php $a = 1; $b = 2; function sum() { global $a, $b; $b = $a + $b; } sum(); echo $b; // 3 ?> ``` 以上脚本的输出将是“3”。在函数中声明了全局变量 $a 和 $b 之后,对任一变量的所有引用都会指向其全局版本。对于一个函数能够声明的全局变量的最大个数,PHP 没有限制。 ### $GLOBALS 超全局数组 在全局范围内访问变量的第二个办法,是用特殊的 PHP 自定义 $GLOBALS 数组。前面的例子可以写成: ``` <?php $a = 1; $b = 2; function sum() { $GLOBALS['b'] = $GLOBALS['a'] + $GLOBALS['b']; } sum(); echo $b; // 3 ?> ``` ### 静态变量(static variable) 静态变量仅在局部函数域中存在,但当程序执行离开此作用域时,其值并不丢失。看看下面的例子: ``` <?php function test() { static $a = 0; echo $a; $a++; } test(); // 0 test(); // 1 test(); // 2 ?> ```