php变量作用域分为局部、全局、静态、参数和类属性五类:局部变量限于函数内;全局变量需global或$globals访问;静态变量保留多次调用的值;参数为函数内局部变量;类属性依public/protected/private控制访问范围。

PHP变量作用域决定了变量在脚本中哪些位置可以被访问和使用。理解变量作用域的关键在于识别变量声明的位置及其生效范围。以下是PHP中变量作用域的分类与对应方法:
一、局部作用域
局部作用域指在函数内部声明的变量,仅在该函数体内可访问,函数执行结束后变量即被销毁。
1、在函数内部使用 var 或直接赋值声明变量。
2、尝试在函数外部使用该变量时,会触发 Notice: Undefined variable 错误。
立即学习“PHP免费学习笔记(深入)”;
3、函数内可通过 return 返回变量值供外部使用。
二、全局作用域
全局作用域指在所有函数之外声明的变量,其默认不可在函数内部直接读写,需显式声明才能访问。
1、在函数外声明变量,例如:$count = 10;
2、在函数内使用 global 关键字引入该变量,如:global $count;
3、也可通过超全局数组 $GLOBALS 访问,例如:$GLOBALS['count']。
三、静态作用域
静态作用域用于保留函数内局部变量的值,使其在多次调用之间不被销毁,适用于计数器或状态缓存场景。
1、在函数内变量前添加 static 关键字,如:static $callCount = 0;
2、首次调用函数时初始化该变量,后续调用跳过初始化步骤。
3、变量值保留在内存中,仅对该函数可见,其他函数无法访问。
四、参数作用域
函数参数在函数被调用时自动创建,属于局部变量,其作用域限定于函数体内部,且独立于同名全局变量。
1、定义函数时在括号中声明参数,如:function test($name) { ... }
2、调用时传入实参,该参数在函数内具有完整读写权限。
3、若参数为引用传递(&$name),则函数内修改会影响外部原始变量。
五、类属性作用域
在类中声明的变量称为属性,其可访问性由访问控制修饰符决定,作用域覆盖整个类及其实例上下文。
1、使用 public 声明的属性可在类内外任意位置访问。
2、使用 protected 声明的属性仅限类本身及其子类访问。
3、使用 private 声明的属性仅限声明它的类内部访问。










