PHP容易出錯之二 PHP中的數字與字串比較

2022-04-11 17:02:37 字數 742 閱讀 3267

php中的比較運算子有點詭異,很容易出錯,現列出比較規則:

1、當兩個字元進行大小比較時,是比較著這兩個字元的ascii碼大小——這條很容易理解。

2、當兩個字串進行大小比較時,是從第乙個字元開始,分別比教對應的ascii大小,只要從從某個對應位置開始,其中乙個字串的當前位置字元大於另乙個字串對應位置字元,即直接判別出這兩個字串大小,如'ba'>'az'——這條其實大家也都知道的。

那麼'10'與'a'比較呢,當然還是一樣的啦,首先將'1'和'a'ascii碼進行比較,'a'大。

3、當乙個數字與乙個字串/字元進行大小比較時,首先系統嘗試將此字串/字元轉換為整型/浮點型,然後進行比較,如'12bsd'轉型為12,'a'轉型為0,千萬需要注意的是此時不是將其對應的ascii碼值與數字進行大小比較了。

其實同樣的道理,'a'+10結果也是10。

並且容易忽略的:0 與任意不可轉化為數字的字串比較(操作符為==), 均返回 true。

最後就會出現如下結果:

1

var_dump('1000000'<'a'); //

result: boolean true

2var_dump('a'<1); //

result: boolean true

3var_dump(1<'1000000'); //

result: boolean true

與常規中的思維還是有一點點不同的吧。。

PHP學習之二

mysql 資料庫函式庫 本函式庫共有 32 個函式 先看一下下面幾個 mysql close 關閉 mysql 伺服器連線。mysql connect 開啟 mysql 伺服器連線。mysql error 返回錯誤資訊。mysql query 送出乙個 query 字串。mysql select ...

PHP溫習之二

1.php包含的超全域性變數 1 globals超全域性變數組,在php指令碼所有的作用域均可以訪問到。x 23 y 17 function addaction addaction echo globals z 輸出 40echo globals x 輸出 23 2 server是與網路有關的全域性...

PHP基礎之二

超全域性變數 post 常量 利用define進行宣告,值不能改變,不能銷毀,不能重新宣告,不用 常用大寫字母 利用動態常量名,左變數的值做常量的名字 define name lee name name echo name 輸出lee 檔案引入相當於把檔案的內容加進來 php錯誤報告 避免黑客攻擊,...