在上午和業務需求戰斗結束之后,準備打開群看看各位老司機有沒有看車,突然看到 @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 布爾值的自增與自減,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網站的支持!
您可能感興趣的文章:- php 根據自增id創建唯一編號類
- PHP中ID設置自增后不連續的原因分析及解決辦法
- php實現Mongodb自定義方式生成自增ID的方法