在 php 中,作用域定义了变量在程序中可访问的范围:局部作用域:仅在声明函数或块级作用域内可访问。全局作用域:在脚本顶部或使用 global 关键字声明,可在脚本任意位置访问。超全局作用域:php 预定义变量(如 $_get),可从脚本任意位置访问。
PHP 变量的作用域
在 PHP 中,变量的作用域定义了变量在程序中可访问的范围。有三种主要作用域:
1. 局部作用域
- 变量在函数或块级作用域内声明和初始化。
- 只能在定义它们的函数或语句块中访问。
2. 全局作用域
立即学习“PHP免费学习笔记(深入)”;
- 变量在脚本顶部声明,或使用 global 关键字声明。
- 可以在脚本的任何地方访问。
3. 超全局作用域
- PHP 预定义的变量,如 $_GET、$_POST 等。
- 可以从脚本中的任何地方访问。
作用域规则:
- 局部变量比全局变量具有优先级。如果存在同名变量,则将使用局部变量。
- 无法从局部作用域访问全局变量,除非使用 global 关键字。
- 可以在任何地方访问超全局变量。
示例:
// 全局变量
$global_var = 10;
function my_function() {
// 局部变量
$local_var = 20;
// 可以访问全局变量
global $global_var;
$global_var += 10;
// 只能访问局部变量
echo $local_var; // 输出 20
}
// 在函数外访问全局变量
echo $global_var; // 输出 20
注意:
- 静态变量存储在函数之外,因此具有全局作用域。
- 从子类访问父类的变量时,作用域规则也会受到影响。