在PHP中,函数的作用域来控制函数及函数中的变量在哪里是可见并且可用的。不同的编程语言有不同的变量作用域规则,PHP中的函数及函数中的变量作用域规则如下:
函数的作用域是指在函数内部声明的变量作用域是从声明的那条语句开始到函数的末尾
全局作用域是指在函数外部声明的变量作用域是从那条语句开始到声明所在的文件末尾
使用关键字global或$GLOBALS[] 数组可以手动指定一个函数中使用的变量为全局变量
通过参数列表传递给函数的变量,对于函数来说是局部变量,但是在传递时待用引用符号(&)的例外
可以使用unset() 函数手动删除一个变量,该变量也在其作用域内同时被销毁。
使用require() 和 include()这两个函数并不会影响作用域。如果他们用于函数内部,则函数作用域适用。如果他们不在函数内部,则全局作用域适用。
<?php $price=0; function sale($price){ $price = 100; $newPrice = $price*0.95; echo "商品的原价为: ".$price."<br/>"; return $newPrice; } echo "商品的折扣价为: ".sale($price)."<br/>"; echo "商品的原价为: ".$price; ?>