国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

PHP基礎(chǔ)之運(yùn)算符5——比較運(yùn)算符

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

比較運(yùn)算符,如同它們名稱所暗示的,允許對(duì)兩個(gè)值進(jìn)行比較。

比較運(yùn)算符例子名稱結(jié)果$a == $b等于TRUE,如果類(lèi)型轉(zhuǎn)換后?$a?等于?$b。$a === $b全等TRUE,如果?$a?等于?$b,并且它們的類(lèi)型也相同。$a != $b不等TRUE,如果類(lèi)型轉(zhuǎn)換后?$a?不等于?$b。$a <> $b不等TRUE,如果類(lèi)型轉(zhuǎn)換后?$a?不等于?$b。$a !== $b不全等TRUE,如果?$a?不等于?$b,或者它們的類(lèi)型不同。$a < $b小與TRUE,如果?$a?嚴(yán)格小于?$b。$a > $b大于TRUE,如果?$a?嚴(yán)格大于?$b。$a <= $b小于等于TRUE,如果?$a?小于或者等于?$b。$a >= $b大于等于TRUE,如果?$a?大于或者等于?$b。

如果比較一個(gè)數(shù)字和字符串或者比較涉及到數(shù)字內(nèi)容的字符串,則字符串會(huì)被轉(zhuǎn)換為數(shù)值并且比較按照數(shù)值來(lái)進(jìn)行。此規(guī)則也適用于?switch?語(yǔ)句。當(dāng)用 === 或 !== 進(jìn)行比較時(shí)則不進(jìn)行類(lèi)型轉(zhuǎn)換,因?yàn)榇藭r(shí)類(lèi)型和數(shù)值都要比對(duì)。

<?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;}?>

對(duì)于多種類(lèi)型,比較運(yùn)算符根據(jù)下表比較(按順序)。

比較多種類(lèi)型運(yùn)算數(shù) 1 類(lèi)型運(yùn)算數(shù) 2 類(lèi)型結(jié)果null?或?stringstring將?NULL?轉(zhuǎn)換為 '',進(jìn)行數(shù)字或詞匯比較bool?或?null任何其它類(lèi)型轉(zhuǎn)換為?bool,FALSE?<?TRUEobjectobject內(nèi)置類(lèi)可以定義自己的比較,不同類(lèi)不能比較,相同類(lèi)和數(shù)組同樣方式比較屬性(PHP 4 中),PHP 5 有其自己的說(shuō)明string,resource?或numberstring,resource?或number將字符串和資源轉(zhuǎn)換成數(shù)字,按普通數(shù)學(xué)比較arrayarray具有較少成員的數(shù)組較小,如果運(yùn)算數(shù) 1 中的鍵不存在于運(yùn)算數(shù) 2 中則數(shù)組無(wú)法比較,否則挨個(gè)值比較(見(jiàn)下例)object任何其它類(lèi)型object?總是更大array任何其它類(lèi)型array?總是更大Example #1 標(biāo)準(zhǔn)數(shù)組比較代碼<?php//?數(shù)組是用標(biāo)準(zhǔn)比較運(yùn)算符這樣比較的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:由于浮點(diǎn)數(shù)?float?的內(nèi)部表達(dá)方式,不應(yīng)比較兩個(gè)浮點(diǎn)數(shù)是否相等。

三元運(yùn)算符

另一個(gè)條件運(yùn)算符是“?:”(或三元)運(yùn)算符 。

Example #2 賦默認(rèn)值

<?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’];?}??>

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

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

Note:?注意三元運(yùn)算符是個(gè)語(yǔ)句,因此其求值不是變量,而是語(yǔ)句的結(jié)果。如果想通過(guò)引用返回一個(gè)變量這點(diǎn)就很重要。在一個(gè)通過(guò)引用返回的函數(shù)中語(yǔ)句?return $var == 42 ? $a : $b;?將不起作用,以后的 PHP 版本會(huì)為此發(fā)出一條警告。

Note:

建議避免將三元運(yùn)算符堆積在一起使用。當(dāng)在一條語(yǔ)句中使用多個(gè)三元運(yùn)算符時(shí)會(huì)造成 PHP 運(yùn)算結(jié)果不清晰:

Example #3 不清晰的三元運(yùn)算符行為

<?php//?乍看起來(lái)下面的輸出是?’true’echo?(true?’true’:false?’t’:’f’);//?然而,上面語(yǔ)句的實(shí)際輸出是’t’,因?yàn)槿\(yùn)算符是從左往右計(jì)算的//?下面是與上面等價(jià)的語(yǔ)句,但更清晰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.?>

標(biāo)簽: PHP
相關(guān)文章:
主站蜘蛛池模板: 黄石市| 镇沅| 岚皋县| 福清市| 内丘县| 阜阳市| 鞍山市| 密山市| 静安区| 大余县| 公安县| 肃宁县| 罗山县| 大港区| 开江县| 高碑店市| 永宁县| 扎鲁特旗| 积石山| 博乐市| 嵊州市| 黄山市| 固原市| 腾冲县| 固原市| 凤山县| 南雄市| 海盐县| 安新县| 安岳县| 全南县| 榆树市| 甘洛县| 长海县| 建宁县| 双流县| 洛川县| 毕节市| 府谷县| 花莲市| 镇沅|