亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術文章
文章詳情頁

PHP基礎之運算符5——比較運算符

瀏覽:2日期:2022-09-14 14:52:59

比較運算符,如同它們名稱所暗示的,允許對兩個值進行比較。

比較運算符例子名稱結果$a == $b等于TRUE,如果類型轉換后?$a?等于?$b。$a === $b全等TRUE,如果?$a?等于?$b,并且它們的類型也相同。$a != $b不等TRUE,如果類型轉換后?$a?不等于?$b。$a <> $b不等TRUE,如果類型轉換后?$a?不等于?$b。$a !== $b不全等TRUE,如果?$a?不等于?$b,或者它們的類型不同。$a < $b小與TRUE,如果?$a?嚴格小于?$b。$a > $b大于TRUE,如果?$a?嚴格大于?$b。$a <= $b小于等于TRUE,如果?$a?小于或者等于?$b。$a >= $b大于等于TRUE,如果?$a?大于或者等于?$b。

如果比較一個數字和字符串或者比較涉及到數字內容的字符串,則字符串會被轉換為數值并且比較按照數值來進行。此規則也適用于?switch?語句。當用 === 或 !== 進行比較時則不進行類型轉換,因為此時類型和數值都要比對。

<?phpvar_dump(0?==?'a');?//?0?==?0?->?truevar_dump('1'?==?'01');?//?1?==?1?->?truevar_dump('10'?==?'1e1');?//?10?==?10?->?truevar_dump(100?==?'1e2');?//?100?==?100?->?trueswitch?('a')?{case?0:????echo?'0';????break;case?'a':?//?never?reached?because?'a'?is?already?matched?with?0????echo?'a';????break;}?>

對于多種類型,比較運算符根據下表比較(按順序)。

比較多種類型運算數 1 類型運算數 2 類型結果null?或?stringstring將?NULL?轉換為 '',進行數字或詞匯比較bool?或?null任何其它類型轉換為?bool,FALSE?<?TRUEobjectobject內置類可以定義自己的比較,不同類不能比較,相同類和數組同樣方式比較屬性(PHP 4 中),PHP 5 有其自己的說明string,resource?或numberstring,resource?或number將字符串和資源轉換成數字,按普通數學比較arrayarray具有較少成員的數組較小,如果運算數 1 中的鍵不存在于運算數 2 中則數組無法比較,否則挨個值比較(見下例)object任何其它類型object?總是更大array任何其它類型array?總是更大Example #1 標準數組比較代碼<?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}?>Warning:由于浮點數?float?的內部表達方式,不應比較兩個浮點數是否相等。

三元運算符

另一個條件運算符是“?:”(或三元)運算符 。

Example #2 賦默認值

<?php?//?Example?usage?for:?Ternary?Operator?$action?=?(empty($_POST[’action’]))???’default’?:?$_POST[’action’];?//?The?above?is?identical?to?this?if/else?statement?if?(empty($_POST[’action’]))?{?????$action?=?’default’;?}?else?{?????$action?=?$_POST[’action’];?}??>

表達式?(expr1) ? (expr2) : (expr3)?在?expr1?求值為?TRUE?時的值為?expr2,在?expr1?求值為?FALSE?時的值為?expr3。

自 PHP 5.3 起,可以省略三元運算符中間那部分。表達式?expr1 ?: expr3?在?expr1?求值為?TRUE?時返回?expr1,否則返回?expr3。

Note:?注意三元運算符是個語句,因此其求值不是變量,而是語句的結果。如果想通過引用返回一個變量這點就很重要。在一個通過引用返回的函數中語句?return $var == 42 ? $a : $b;?將不起作用,以后的 PHP 版本會為此發出一條警告。

Note:

建議避免將三元運算符堆積在一起使用。當在一條語句中使用多個三元運算符時會造成 PHP 運算結果不清晰:

Example #3 不清晰的三元運算符行為

<?php//?乍看起來下面的輸出是?’true’echo?(true?’true’:false?’t’:’f’);//?然而,上面語句的實際輸出是’t’,因為三元運算符是從左往右計算的//?下面是與上面等價的語句,但更清晰echo?((true???’true’?:?’false’)???’t’?:?’f’);//?here,?you?can?see?that?the?first?expression?is?evaluated?to?’true’,?which//?in?turn?evaluates?to?(bool)true,?thus?returning?the?true?branch?of?the//?second?ternary?expression.?>

標簽: PHP
相關文章:
主站蜘蛛池模板: 国产一级毛片网站 | 亚洲天堂久久精品成人 | 成年女人免费视频播放77777 | 亚洲国产精品va在线观看麻豆 | 国产成人精品区在线观看 | 国产福利小视频在线播放观看 | 精品视频久久久 | 成人在线免费看 | 国产精品推荐 | 成人在线精品视频 | 一级做a爰片久久毛片图片 一级做a爰片久久毛片看看 | 一集毛片| 欧美蜜臀| 国产末成年女噜噜片 | 国内自拍第100页 | 大乳女人做受视频免费观看 | 色视频免费观看高清完整 | 亚洲成人三级 | 日韩欧美亚洲综合一区二区 | 一级特黄性色生活片 | 泰国一级淫片免费看 | 欧美在线 | 亚洲 | 国产国拍亚洲精品av | 欧美搞黄视频 | 2021年韩国r级理论片在线观看 | 国产精品爱久久久久久久9999 | 欧美成人h版影片在线观看 欧美成人h版影院在线播放 | 爱操tv| 亚洲一区欧美日韩 | 一本伊大人香蕉在线观看 | 亚洲性一级理论片在线观看 | 日本九九精品一区二区 | 久久久久久国产精品免费免 | 在线免费观看国产视频 | 99国产成+人+综合+亚洲 欧美 | 992tv快乐视频在线啪啪免费 | 日本二级黄色片 | 在线免费观看网站 | 最近的免费中文字幕视频 | 国产精品久久久久免费a∨ 国产精品久久久久这里只有精品 | 欧美日韩第二页 |