PHP中的静态关键字打印0值


$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, $bstatic $a=null, $b=null相同(,因此null + null等于0,因此输出。

最新更新