在上午和業務需求戰斗結束之后,準備打開群看看各位老司機有沒有看車,突然看到 @E舞九天 II 發的一些消息
他發現,PHP 的布爾值自增,無論自增多少遍,最后輸出的都是 1
這就比較有趣了~
自增和自減,++$a 和 $a++ 的區別大家都知道
++a 表示取 a 的地址,增加內存中 a 的值,然后把值放在寄存器中
a++ 表示取 a 的地址,把 a 的值裝入寄存器中,然后增加內存中 a 的值
我打開一個編輯器,去確認一下這個結果
$a = true; var_dump(--$a); echo PHP_EOL; echo $a; $b = false; echo PHP_EOL; var_dump(++$b);
運行最后輸入結果如下
bool(true)
1
bool(false)
發現結果和之前設想的不太對,PHP 對于布爾值的自增運算沒有做任何處理,而自增后為 1 是因為我們使用了 echo 去輸出,導致 bool 被強轉
去查詢 PHP 的官方文檔,沒想到有一行很明顯的提示
Note: 遞增/遞減運算符不影響布爾值。遞減 NULL 值也沒有效果,但是遞增 NULL 的結果是 1。
總結
以上所述是小編給大家介紹的PHP 布爾值的自增與自減,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對服務器之家網站的支持!