php中有兩種比較的符號 == 與 ===
1 <?php
2 $a = $b ;
3 $a===$b ;
4 ?>
=== 在進行比較的時候,會先判斷兩種字符串的類型是否相等,再比較
== 在進行比較的時候,會先將字符串類型轉(zhuǎn)化成相同,再比較
如果比較一個數(shù)字和字符串或者比較涉及到數(shù)字內(nèi)容的字符串,則字符串會被轉(zhuǎn)換成數(shù)值并且比較按照數(shù)值來進行
這里明確了說如果一個數(shù)值和字符串進行比較的時候,會將字符串轉(zhuǎn)換成數(shù)值
<?php
var_dump("admin"==0); //true
var_dump("1admin"==1); //true
var_dump("admin1"==1) //false
var_dump("admin1"==0) //true
var_dump("0e123456"=="0e4456789"); //true
?> //上述代碼可自行測試
1 觀察上述代碼,"admin"==0 比較的時候,會將admin轉(zhuǎn)化成數(shù)值,強制轉(zhuǎn)化,由于admin是字符串,轉(zhuǎn)化的結(jié)果是0自然和0相等
2 "1admin"==1 比較的時候會將1admin轉(zhuǎn)化成數(shù)值,結(jié)果為1,而“admin1“==1 卻等于錯誤,也就是"admin1"被轉(zhuǎn)化成了0,為什么呢??
3 "0e123456"=="0e456789"相互比較的時候,會將0e這類字符串識別為科學技術(shù)法的數(shù)字,0的無論多少次方都是零,所以相等.