對PHP中的0、false、空字符串、null 的比較

最近看PHP基礎知識,總結了下對于初學著經常陷入迷茫的0、false、空、null的比較。這些特殊值在比較大小的時候經常使初學者不知所措。在講之前我們先來說一下PHP的數據類型。

PHP支持八種原始類型:

四種標量類型: string(字符串)、integer(整型)、float(浮點型,也作 double 、boolean(布爾型)

兩種復合類型:array(數組)、object(對象)

兩種特殊類型:resource(資源)、NULL(空)

接下來,我們給變量賦以下值:

$a = ' '; ??$a_b = '0'; ? $a_c = '00' ; ?

$c = 0; ?$d = 0.0; ?

$e = false; ?

$f = array( ); ?$g = NUll;

判斷以下表達式的值:

比較表達式 ? ? ? ? ? ? 值 ? ? ? ? ? ? ? 分析

$a == $a_b ? ? ? ? ?false ?

$a_b == $a_c ? ? ? true

$a_b === $a_c ? ?false

$a ?== $c ? ? ? ? ? ? true

$a ?=== $c ? ? ? ? ?false

$a == $d ? ? ? ? ? ? true

$c == $d ? ? ? ? ? ? true

$c === $d ? ? ? ? ?false

$a == $e ? ? ? ? ? ? true

$a_b == $e ? ? ? ? true

$a_c ?== $e ? ? ? ?false

$c ?== $e ? ? ? ? ? true

$d ?== $e ? ? ? ? ?true

$a == $f ? ? ? ? ? false

$c == ?$f ? ? ? ? ?false

$e == $f ? ? ? ? ? true

$a == $g ? ? ? ? ?true

$a_b == $g ? ? ? false

$c == $g ? ? ? ? ? true

$e == $g ? ? ? ? ? true

$f == $g ? ? ? ? ? true

以上表達式的值,如果你都能答對,并且理解,那應該不用接著往下看了,說明你這塊兒知識掌握的很好了,平時運用足夠了,當然,再往深處研究只懂這些是不夠。

有一個規律,常用不同數據類型(標量類型)之間的比較規律,如果記住這個規律,那么標量之間的數據比較,就沒有問題了,但是和空數組 、null的比較還不夠。

(此規律摘自博客:http://blog.csdn.net/l1028386804/article/details/48771375

規律:如果比較的數據中,有布爾數據類型,轉為布爾值比較,布爾值比較只有一個規則,

true ?> ?false;

?否則,如果有數字值,就轉為數字值比較,這是常規比較;

否則,如果倆邊都是純數字字符串,轉為數字比較;

否則,就按字符串比較。

其它,涉及到null 和 空數組,只有記住就好啦,暫時沒有發現好的理解方法,如果您有什么好的理解,歡迎指教。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • Spring Cloud為開發人員提供了快速構建分布式系統中一些常見模式的工具(例如配置管理,服務發現,斷路器,智...
    卡卡羅2017閱讀 134,993評論 19 139
  • ¥開啟¥ 【iAPP實現進入界面執行逐一顯】 〖2017-08-25 15:22:14〗 《//首先開一個線程,因...
    小菜c閱讀 6,554評論 0 17
  • 《ijs》速成開發手冊3.0 官方用戶交流:iApp開發交流(1) 239547050iApp開發交流(2) 10...
    葉染柒丶閱讀 5,342評論 0 7
  • 1. Java基礎部分 基礎部分的順序:基本語法,類相關的語法,內部類的語法,繼承相關的語法,異常的語法,線程的語...
    子非魚_t_閱讀 31,779評論 18 399
  • 《裕語言》速成開發手冊3.0 官方用戶交流:iApp開發交流(1) 239547050iApp開發交流(2) 10...
    葉染柒丶閱讀 27,888評論 5 19