ホームページ > バックエンド開発 > PHPチュートリアル > PHP 比較演算子の詳細な解釈_PHP チュートリアル

PHP 比較演算子の詳細な解釈_PHP チュートリアル

WBOY
リリース: 2016-07-15 13:33:33
オリジナル
984 人が閲覧しました

表 1. PHP 比較演算子

例 名前 結果 $a が $b と等しい場合、
$a == $b は TRUE と等しくなります。
$a === $b $a が $b に等しく、それらが同じ型である場合、合同 TRUE。 (PHP 4 で導入)
$a != $b notqual $a が $b と等しくない場合は TRUE。
$a <> $b が等しくない $a が $b と等しくない場合は TRUE。
$a !== $b non-congruent $a が $b と等しくない場合、またはそれらの型が異なる場合は TRUE。 (PHP 4 のみ) $a が厳密に $b より小さい場合、
$a < $b は TRUE より小さくなります。
$a > $b は、$a が厳密に $b である場合に TRUE より大きくなります。
$a <= $b は、$a が $b 以下の場合、TRUE 以下です。
$a >= $b は、$a が $b 以上の場合、TRUE 以上です。

PHP 比較演算子が整数と文字列を比較する場合、文字列は整数に変換されます。 2 つの数値文字列を比較する場合は、整数として比較します。このルールは switch ステートメントにも適用されます。

<OL class=dp-xml><LI class=alt><SPAN><SPAN class=tag><</SPAN><SPAN> ?php  </SPAN></SPAN><LI><SPAN>var_dump(</SPAN><SPAN class=attribute>0</SPAN><SPAN> == "a"); // </SPAN><SPAN class=attribute>0</SPAN><SPAN> == 0 -</SPAN><SPAN class=tag>><span> true  </span></p>
<li class="alt">
<span>var_dump("1" == "01"); // </span><span class="attribute">1</span><span> == 1 -</span><span class="tag">></span><span> true  </span>
</li>
<li><span>switch ("a") {  </span></li>
<li class="alt"><span>case 0:  </span></li>
<li><span>echo "0";  </span></li>
<li class="alt"><span>break;  </span></li>
<li><span>case "a": // never reached because "a" is already matched with 0  </span></li>
<li class="alt"><span>echo "a";  </span></li>
<li><span>break;  </span></li>
<li class="alt"><span>}  </span></li>
<li>
<span class="tag">?></span><span>  </span>
</li>
<p> オペランドの種類が異なる場合は、以下の表に従って比較してください(順番に)。 </p>
<p><strong>表 2. PHP 比較演算子はさまざまな型を比較します</strong></p>
<p>演算子 1 型オペランド 1 型結果<br>null または文字列 string 数値または字句比較のために NULL を "" に変換します<br>bool または null 他の型変換は bool、FALSE &lt です; TRUE <br>object オブジェクトの組み込みクラスは独自の比較を定義できます、異なるクラスは比較できません、同じクラスと配列のプロパティは同じ方法で比較されます (PHP 4)、PHP 5 には独自の命令があります </p>
<p>string, resourceまたは数値 文字列、リソース、または数値 通常の数学で比較して、文字列とリソースを数値に変換します <br>array 配列 メンバーの少ない配列は小さくなります。オペランド 1 のキーがオペランド 2 に存在しない場合、配列は比較できません。それ以外の場合は比較します。値を 1 つずつ (以下の例を参照) </p>
<p>array 他のタイプの配列は常に大きくなります<br>object 他のタイプのオブジェクトは常に大きくなります</p>
<p><strong>例 1. 標準の配列比較コード</strong></p>
<pre class="brush:php;toolbar:false"><ol class="dp-xml"><li class="alt"><span><span class="tag"><</SPAN><SPAN> ?php  </SPAN></SPAN><LI><SPAN>// 数组是用标准比较运算符这样比较的  </SPAN><LI class=alt><SPAN>function standard_array_compare($op1, $op2)  </SPAN><LI><SPAN>{  </SPAN><LI class=alt><SPAN>if (count($op1) </SPAN><SPAN class=tag><</SPAN><SPAN> </SPAN><SPAN class=tag-name>count</SPAN><SPAN>($op2)) {  </SPAN><LI><SPAN>return -1; // $op1 </SPAN><SPAN class=tag><</SPAN><SPAN> $op2  </SPAN><LI class=alt><SPAN>} elseif (count($op1) </SPAN><SPAN class=tag>></span><span> count($op2)) {  </span><li>
<span>return 1; // $op1 </span><span class="tag">></span><span> $op2  </span>
</li>
<li class="alt"><span>}  </span></li>
<li>
<span>foreach ($op1 as $</span><span class="attribute">key</span><span> =</span><span class="tag">></span><span> $val) {  </span>
</li>
<li class="alt"><span>if (!array_key_exists($key, $op2)) {  </span></li>
<li><span>return null; // uncomparable  </span></li>
<li class="alt">
<span>} elseif ($val </span><span class="tag"><</SPAN><SPAN> $op2[$key]) {  </SPAN><LI><SPAN>return -1;  </SPAN><LI class=alt><SPAN>} elseif ($val </SPAN><SPAN class=tag>></span><span> $op2[$key]) {  </span>
</li>
<li><span>return 1;  </span></li>
<li class="alt"><span>}  </span></li>
<li><span>}  </span></li>
<li class="alt">
<span>return 0; // $</span><span class="attribute">op1</span><span> == $op2  </span>
</li>
<li><span>}  </span></li>
<li class="alt">
<span class="tag">?></span><span> </span>
</li></span></li></ol>
ログイン後にコピー

PHP 比較演算子三項演算子

もう 1 つの条件演算子は、「?:」 (または三項) 演算子です。 例 2. デフォルト値の割り当て

<ol class="dp-xml"><li class="alt"><span><span class="tag"><</SPAN><SPAN> ?php  </SPAN></SPAN><LI><SPAN>// Example usage for: Ternary Operator  </SPAN><LI class=alt><SPAN>$</SPAN><SPAN class=attribute>action</SPAN><SPAN> = (empty($_POST['action'])) <br>? 'default' : $_POST['action'];  </SPAN><LI><SPAN>// The above is identical to <br>this if/else statement  </SPAN><LI class=alt><SPAN>if (empty($_POST['action'])) {  </SPAN><LI><SPAN>$</SPAN><SPAN class=attribute>action</SPAN><SPAN> = </SPAN><SPAN class=attribute-value>'default'</SPAN><SPAN>;  </SPAN><LI class=alt><SPAN>} else {  </SPAN><LI><SPAN>$</SPAN><SPAN class=attribute>action</SPAN><SPAN> = $_POST['action'];  </SPAN><LI class=alt><SPAN>}  </SPAN><LI><SPAN class=tag>?></span><span>   </span></span></li></ol>
ログイン後にコピー

Expression (expr1) ? (expr2) : (expr3) expr1 が TRUE と評価される場合、値は expr2 になり、expr1 が FALSE と評価される場合、値は expr3 になります。

注: 三項演算子はステートメントであるため、その評価は変数ではなくステートメントの結果であることに注意してください。これは、変数を参照によって返したい場合に重要です。参照によって返される関数内のステートメント return $var == 42 ? $a : $b; は機能せず、PHP の将来のバージョンではこれに関する警告が発行されます。


www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/446050.html技術記事表 1. PHP 比較演算子の例 名前 結果 $a が $b と等しい場合、$a == $b は TRUE と等しくなります。 $a === $b 合同 $a が $b に等しく、それらが同じ型である場合に TRUE。 (PH...
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート