UTF*_*F-8 5 php initialization
没有必要在 PHP 中初始化变量,但这是一个很好的做法。未初始化的变量有其类型的默认值,具体取决于使用它们的上下文 - 布尔值默认为 FALSE,整数和浮点数默认为零,字符串(例如在 echo 中使用)设置为空字符串,数组变为空大批。
我正在使用未初始化的变量进行打高尔夫球,但该程序没有按照我的预期执行。经过检查,我注意到这种奇怪的行为(所有使用的变量都未初始化):
php > $a = $a + 1;
PHP Notice: Undefined variable: a in php shell code on line 1
php > $b = $b - 1;
PHP Notice: Undefined variable: b in php shell code on line 1
php > $c++;
PHP Notice: Undefined variable: c in php shell code on line 1
php > $d--;
PHP Notice: Undefined variable: d in php shell code on line 1
php > var_dump($a);
int(1)
php > var_dump($b);
int(-1)
php > var_dump($c);
int(1)
php > var_dump($d);
NULL
Run Code Online (Sandbox Code Playgroud)
+ 1, - 1, 并++按照手册中的说明工作。然而,--没有。
$a, $b, 和$c可用于计数,之后。但是$d--;,不会$d因为$dis改变的值NULL。
为什么$d设置为NULL,而不是-1?
顺便说一下,使用前缀运算符会产生相同的结果:变量设置为1for++$v;但设置为NULLfor --$v;。