![PHP入门很轻松(微课超值版)](https://wfqqreader-1252317822.image.myqcloud.com/cover/100/44510100/b_44510100.jpg)
上QQ阅读APP看书,第一时间看更新
2.3.4 变量作用域
所谓变量作用域,是指特定变量在代码中可以被访问到的位置。PHP中变量作用域分别为:局部作用域、全局作用域和静态作用域。
1.局部作用域和全局作用域
(1)局部作用域:在PHP函数内部定义的变量是局部变量,仅能在函数内部访问。
(2)全局作用域:在所有函数外部定义的变量,拥有全局作用域。除了函数外,全局变量可以被脚本中的任何部分访问,要在一个函数中访问一个全局变量,需要使用global关键字。global关键字用于函数内访问全局变量,也就是在函数内调用函数外定义的全局变量,需要在函数中的变量前加上global关键字。
【例2-6】局部作用域和全局作用域(实例文件:源文件\ch02\2.6.php)。
![](https://epubservercos.yuewen.com/C06CD9/23721570201955106/epubprivate/OEBPS/Images/Figure-P29_36700.jpg?sign=1738872756-A9k1cbgz4f5HVg4mHeUKGjhVfp1m2i7v-0-114f36e46cd1d10a736b7c7db7815df9)
运行结果如图2-6所示。
![](https://epubservercos.yuewen.com/C06CD9/23721570201955106/epubprivate/OEBPS/Images/Figure-P29_430.jpg?sign=1738872756-a2mU2yRHy2fGxUys6rc3Fs9lkFpR6i5q-0-85775249705662c191aab861fb45942d)
图2-6 局部作用域和全局作用域
2.静态作用域
在函数退出时,一般局部变量及相应的值就会被清除。如果希望某个局部变量不被清除,在第一次定义该变量时使用static关键字,这样就把该变量定义成了静态变量。函数被执行后,其静态变量的值保留,下一次再执行此函数,这个值还可以调用。
【例2-7】静态作用域(实例文件:源文件\ch02\2.7.php)。
![](https://epubservercos.yuewen.com/C06CD9/23721570201955106/epubprivate/OEBPS/Images/Figure-P30_36701.jpg?sign=1738872756-A2547HbsQQv9peHyDnWPCqSF3LMpSAIG-0-22440f0123373a6644196812fb9060f9)
运行结果如图2-7所示。showgoods()函数被执行3次,这个过程中static $goods的运算后的值得以保留。
![](https://epubservercos.yuewen.com/C06CD9/23721570201955106/epubprivate/OEBPS/Images/Figure-P30_197.jpg?sign=1738872756-nhM8rZ5CdmO4zHovn5YL57gciE6HarC8-0-fb5af7d15e971edc72a6ab3396c01da9)
图2-7 静态作用域