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
- PHP比較運算子的詳細學習PHP
- SCSS 比較運算子CSS
- MySQL的四種運算子(算術運算子、比較運算子、邏輯運算子和位運算子)MySql
- Python學習-比較運算子和邏輯運算子Python
- PHP中“==”運算子的安全問題PHP
- 使用錯誤的運算子進行字串比較缺陷漏洞字串
- PHP8:PHP的運算子PHP
- javascript中&&運算子和||運算子的使用JavaScript
- php運算子運用之型別運算子該如何使用PHP型別
- 8.Golang中的運算子-算術運算子、關係運算子、邏輯運算子、賦值運算子Golang賦值
- PHP物件的比較PHP物件
- php型別運算子的使用PHP型別
- js中的運算子JS
- MySQL中的運算子MySql
- php7中的三元運算子的區別PHP
- PHP比較字串PHP字串
- 自學PHP筆記(五) PHP運算子PHP筆記
- # JavaScript中的 || 與 && 運算子JavaScript
- python中的運算子Python
- (3)mysql 中的運算子MySql
- Java:比較運算子compareTo()、equals()、==之間的區別與應用總結Java
- PHP4使用者手冊:運算子->字串運算子 (轉)PHP字串
- php運算子優先順序PHP
- JavaScript 與 Java、PHP 的比較JavaScriptPHP
- PHP容易出錯之二:PHP中的數字與字串比較PHP字串
- python比較運算子中大於等於且小於等於的表達方式Python
- Python 中的特殊運算子Python
- JS 中的邏輯運算子JS
- 字串拼接運算比較字串
- php算術運算子怎麼使用?PHP
- php型別比較表PHP型別
- PHP 7 vs HHVM 比較PHP
- 集中運維與分散運維的比較 - thenewstack運維
- PHP7 ?? 與 ?: 的作用和區別(null合併運算子, null條件運算子)PHPNull
- PHP的的陣列和比較符PHP陣列
- oracle中字串的大小比較,字串與數字的比較和運算Oracle字串