php中关于while条件的问题

while (!$a) {

$a++;

echo $a;

static $a = 0; 

}

当 $a 没有初始值时,为什么循环体还会被执行,难道没有初始化的变量会被自动着判断为 0 ?如果是这样,为什么还是会报 Notice 级的警告?


长风吹云
浏览 1771回答 3
3回答

Tobey_滔

分析:  结果会输出11..其实是2个1来的...(可以空格分开看一下!!)..那么么说while走了2次!...由于$a是没有声明的..那么绝对是会报Notice...仅仅是警告性错误!!不会影响代码执行的...没有声明的变量$a其实就是null   你可以var_dump()进行验证...!$a ==>  !null  ==> true...因此循环会走第一次...$a++  => null++  ==>  1 输出第一个1然后$a被声明为静态的$a = 0;   这样第二次循环就不解释了!!!还会输出一个1..因此一共输出2个1

Lemon156

$a没有初始化的时候是NULL,在!$a之后变成了布尔值是true,所以while循环是会执行的望采纳
打开App,查看更多内容
随时随地看视频慕课网APP