为了账号安全,请及时绑定邮箱和手机立即绑定

php中关于while条件的问题

php中关于while条件的问题

长风吹云 2016-11-01 16:18:11
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

查看完整回答
2 反对 回复 2016-11-01
?
Lemon156

TA贡献91条经验 获得超32个赞

$a没有初始化的时候是NULL,在!$a之后变成了布尔值是true,所以while循环是会执行的

望采纳

查看完整回答
反对 回复 2016-11-01
  • 3 回答
  • 0 关注
  • 1764 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信