$x = 5;
$y = 10;
function test($a, $b) {
static $a, $b;
return $a + $b;
}
print test($a, $b);
为什么此代码将0打印为值
static
关键字不修改变量,而是创建具有新值的新变量。请参阅:
$x = 5;
static $x;
var_dump($x);
$x = 6;
var_dump($x);
通过做:
static $a, $b;
您已经用新变量重写了函数的输入值。由于两者都是未定义的(static $a, $b
与static $a=null, $b=null
相同(,因此null + null
等于0
,因此输出。