PHP中的比較運算子
一般規則
一般來說,有以下規則
數字與字串比較
如果比較一個數字和字串或者比較涉及到數字內容的字串,則字串會被轉換為數值並且比較按照數值來進行。但當用 === 或 !== 進行比較時則不進行型別轉換,因為此時型別和數值都要比對。
例如:
<?php
var_dump(0 == "a"); // 0 == 0 -> true
var_dump("1" == "01"); // 1 == 1 -> true
var_dump("10" == "1e1"); // 10 == 10 -> true
var_dump(100 == "1e2"); // 100 == 100 -> true
型別轉換
關於不同型別比較之中的型別轉換
標準陣列比較
提供一種陣列比較的思路:
* 比較陣列元素個數
* 若元素個數相同,則比較鍵名。如果陣列1中的鍵名陣列2中沒有,則無法比較,返回NULL
* 如果陣列2中存在相同鍵名,則比較值大小
該方法中沒有處理鍵名順序問題,可能導致不同結果。[建議先對陣列元素按鍵名排序]
<?php
// 陣列是用標準比較運算子這樣比較的
function standard_array_compare($op1, $op2)
{
if (count($op1) < count($op2)) {
return -1; // $op1 < $op2
} elseif (count($op1) > count($op2)) {
return 1; // $op1 > $op2
}
foreach ($op1 as $key => $val) {
if (!array_key_exists($key, $op2)) {
return null; // uncomparable
} elseif ($val < $op2[$key]) {
return -1;
} elseif ($val > $op2[$key]) {
return 1;
}
}
return 0; // $op1 == $op2
}
相關文章
- php運算子 比較運算子 邏輯運算子 三元運算子PHP
- php比較運算子的安全問題PHP
- SCSS 比較運算子CSS
- MySQL的四種運算子(算術運算子、比較運算子、邏輯運算子和位運算子)MySql
- Python學習-比較運算子和邏輯運算子Python
- 不用做任何比較判斷運算子找出兩個整數中的較大的值
- 使用錯誤的運算子進行字串比較缺陷漏洞字串
- Kotlin 運算子詳解:算術、賦值、比較與邏輯運算子全解析Kotlin賦值
- php運算子運用之型別運算子該如何使用PHP型別
- php型別運算子的使用PHP型別
- javascript中&&運算子和||運算子的使用JavaScript
- PHP比較字串PHP字串
- 8.Golang中的運算子-算術運算子、關係運算子、邏輯運算子、賦值運算子Golang賦值
- php7中的三元運算子的區別PHP
- js中的運算子JS
- python中的運算子Python
- 自學PHP筆記(五) PHP運算子PHP筆記
- python比較運算子中大於等於且小於等於的表達方式Python
- php---空合併運算子PHP
- php型別比較表PHP型別
- Python 中的特殊運算子Python
- # JavaScript中的 || 與 && 運算子JavaScript
- 【linux】Shell中的運算子Linux
- php算術運算子怎麼使用?PHP
- 字串拼接運算比較字串
- 運算子 運算子
- if-else和三目運算子 ? : 的對比
- PHP7 ?? 與 ?: 的作用和區別(null合併運算子, null條件運算子)PHPNull
- 集中運維與分散運維的比較 - thenewstack運維
- JS 中的邏輯運算子JS
- Python3中的運算子Python
- php遞增和遞減運算子的介紹PHP
- 運算子的關係,什麼叫一元運算子,二元運算子,三元運算子,運算子優先順序,以及運算子的
- 算術運算子裡的特殊運算子
- 運算子-賦值運算子賦值
- js中的|與 && 運算子詳解JS
- 位運算子在JS中的妙用JS
- SQLite中的運算子表示式SQLite
- vue中的三元運算子Vue