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 關注
- 1816 瀏覽
添加回答
舉報
0/150
提交
取消