while (!$a) { $a++; echo $a; static $a = 0; }当 $a 没有初始值时,为什么循环体还会被执行,难道没有初始化的变量会被自动着判断为 0 ?如果是这样,为什么还是会报 Notice 级的警告?
3 回答
已采纳
Tobey_滔
TA贡献242条经验 获得超128个赞
分析: 结果会输出11..其实是2个1来的...(可以空格分开看一下!!)..那么么说while走了2次!...
由于$a是没有声明的..那么绝对是会报Notice...仅仅是警告性错误!!不会影响代码执行的...
没有声明的变量$a其实就是null 你可以var_dump()进行验证...
!$a ==> !null ==> true...因此循环会走第一次...$a++ => null++ ==> 1 输出第一个1
然后$a被声明为静态的$a = 0; 这样第二次循环就不解释了!!!还会输出一个1..
因此一共输出2个1
- 3 回答
- 0 关注
- 1764 浏览
添加回答
举报
0/150
提交
取消