上QQ阅读APP看书,第一时间看更新
2.3.4 变量作用域
所谓变量作用域,是指特定变量在代码中可以被访问到的位置。PHP中变量作用域分别为:局部作用域、全局作用域和静态作用域。
1.局部作用域和全局作用域
(1)局部作用域:在PHP函数内部定义的变量是局部变量,仅能在函数内部访问。
(2)全局作用域:在所有函数外部定义的变量,拥有全局作用域。除了函数外,全局变量可以被脚本中的任何部分访问,要在一个函数中访问一个全局变量,需要使用global关键字。global关键字用于函数内访问全局变量,也就是在函数内调用函数外定义的全局变量,需要在函数中的变量前加上global关键字。
【例2-6】局部作用域和全局作用域(实例文件:源文件\ch02\2.6.php)。
运行结果如图2-6所示。
图2-6 局部作用域和全局作用域
2.静态作用域
在函数退出时,一般局部变量及相应的值就会被清除。如果希望某个局部变量不被清除,在第一次定义该变量时使用static关键字,这样就把该变量定义成了静态变量。函数被执行后,其静态变量的值保留,下一次再执行此函数,这个值还可以调用。
【例2-7】静态作用域(实例文件:源文件\ch02\2.7.php)。
运行结果如图2-7所示。showgoods()函数被执行3次,这个过程中static $goods的运算后的值得以保留。
图2-7 静态作用域