- 1)静态变量只初始化一次
- 2)初始化需赋值
- 3)每次执行函数,静态变量值保留
- 4)static 修饰的变量属于局部变量,仅在函数内部有效
function test($a){
static $m = $a;
echo $m++;
}
function test1($a){
$t = 1;
static $m = $t;
echo $m++;
}
test(1);
test1(1);
程序报错PHP Fatal error: Constant expression contains invalid operations in 静态变量只能初始化化赋值一次,且赋值确切的值。(初始化赋值一次,而不是赋值一次)
$count = 1;
function get_count(){
static $count;
return $count++;
}
echo $count;
echo get_count();
echo get_count();
输出1,null,1
函数参数默认是值传递,对象不管在哪都是引用。如果希望函数内部改变参数的值,则需要通过引用传递参数。引用&只能引用变量,不能引用一个值。
函数遇到return结束,只能return一个值,没有return 则return null; 只有定义和调用使用& ,才能使用引用返回
<?php
function &test(){
static $a = 1;
return $a;
}
$a = test();
var_dump($a);
$a = 10;
$b = &test();
var_dump($b);
$b = 10;
$c = test();
var_dump($c);
输出内容1,1,10