長(zhǎng)風(fēng)吹云
2016-11-01 16:18:11
while (!$a) { $a++; echo $a; static $a = 0;?}當(dāng) $a 沒有初始值時(shí),為什么循環(huán)體還會(huì)被執(zhí)行,難道沒有初始化的變量會(huì)被自動(dòng)著判斷為 0 ?如果是這樣,為什么還是會(huì)報(bào) Notice 級(jí)的警告?
3 回答
已采納

Tobey_滔
TA貢獻(xiàn)242條經(jīng)驗(yàn) 獲得超128個(gè)贊
分析: ?結(jié)果會(huì)輸出11..其實(shí)是2個(gè)1來的...(可以空格分開看一下!!)..那么么說while走了2次!...
由于$a是沒有聲明的..那么絕對(duì)是會(huì)報(bào)Notice...僅僅是警告性錯(cuò)誤!!不會(huì)影響代碼執(zhí)行的...
沒有聲明的變量$a其實(shí)就是null ? 你可以var_dump()進(jìn)行驗(yàn)證...
!$a ==> ?!null ?==> true...因此循環(huán)會(huì)走第一次...$a++ ?=> null++ ?==> ?1 輸出第一個(gè)1
然后$a被聲明為靜態(tài)的$a = 0; ? 這樣第二次循環(huán)就不解釋了!!!還會(huì)輸出一個(gè)1..
因此一共輸出2個(gè)1

Lemon156
TA貢獻(xiàn)91條經(jīng)驗(yàn) 獲得超32個(gè)贊
$a沒有初始化的時(shí)候是NULL,在!$a之后變成了布爾值是true,所以while循環(huán)是會(huì)執(zhí)行的
望采納
- 3 回答
- 0 關(guān)注
- 1814 瀏覽
添加回答
舉報(bào)
0/150
提交
取消