上QQ阅读APP看书,第一时间看更新
3.4 作用域
变量的作用域指变量的生效范围,或其定义的上下文背景。
3.4.1 函数作用域
默认情况下,变量的作用域局限在函数范围之内。这有以下两层意思:
● 函数范围之内定义的变量,仅在函数范围之内可见。
● 函数范围之外定义的变量,不能在函数中可见,除非显式使用global关键字。
例如下例中,定义在函数范围之外的$a = 1和定义在test函数里的$a = 2,两者互不影响。
(源码文件:ch03/scope_1.php)
3.4.2 global关键字
使用global关键字可以在函数中引用全局变量,例如下例中test函数内可以使用global关键字来引用外部定义的全局变量。
(源码文件:ch03/scope_2.php)
也可以使用$GLOBALS来引用全局变量。
3.4.3 引用文件的变量作用域
变量作用域包含了使用include或require引入的文件,例如我们在scope_var.php定义了$a=1,那么该变量的作用域会带到引用该文件的地方。
例1:(源码文件:ch03/scope_var.php)
<?php $a = 1;
例2:(源码文件:ch03/scope_3.php)
<?php include('./scope_var.php'); //require('./scope_var.php'); echo $a; //输出 1
3.4.4 超全局变量
超全局变量,即3.2节介绍的预定义变量,其作用域为全局,在任何地方都可以引用。