PHP变量作用域
-
local:局部变量,函数内部定义的变量;
-
global:全局变量,可在任何地方使用;
-
static:静态变量,又分为静态局部变量和静态全局全量:
- 静态局部变量:一种特殊的局部变量,值不会随着函数的调用和退出发生变化,只能在函数内部使用;不管其所在的函数是否被调用,其都会一直存在,但不能使用它,只有当调用其所在的函数时,才可以继续使用;
- 静态全局变量:声明全局变量时前面加上static关键字,就变成静态全局变量;
-
parameter:参数作用域,通过调用代码将值传递给函数的局部变量;
全局变量:
// 全局变量
$a = 1;
$b = 2;
function my_func()
{
// 使用全局变量前 要加上global关键字
global $a, $b;
echo $a + $b;
}
my_func();
静态变量:可以在任何可以声明的地方声明,在之后的运行中,始终保持最后一次声明时的赋值;静态变量并非不能改变其值,其拥有的值是可变的,而是始终保持最新的赋值;静态,指的是变量的值不会随着函数的调用和退出而发生变化。
function testStatic()
{
static $val = 1;
// 即便此处的条件不成立 也可以声明静态变量
if(1 == 2){
static $val = 2;
}
echo $val;
$val++;
echo "<br/>";
}
testStatic(); //output 2
testStatic(); //output 3
testStatic(); //output 4