ホームページ  >  記事  >  バックエンド開発  >  PHPにおける演算子の優先順位はどのようになりますか?

PHPにおける演算子の優先順位はどのようになりますか?

怪我咯
怪我咯オリジナル
2017-06-20 10:59:351911ブラウズ

演算子の優先順位 は、2 つの式がどの程度「緊密に」結合されるかを指定します。たとえば、乗算記号 ("*") はプラス記号 ("+") よりも優先されるため、式 1 + 5 * 3 は 18 ではなく 16 と評価されます。必要に応じて、括弧を使用して優先順位を強制的に変更できます。例: (1 + 5) * 3 の値は 18 です。

演算子の優先順位が同じ場合、その結合方向によって、評価を右から左にするか左から右にするかが決まります。以下の例を参照してください。

次の表は、演算子を優先順位の高いものから低いものの順にリストしています。同じ行にある演算子は同じ優先順位を持ち、それらを組み合わせる方向によって評価の順序が決まります。

演算子の優先順位は次の表の通りです

代入演算子 同じ優先順位を持つ演算子の場合、左の結合方向は評価が左から右に行われることを意味し、右の結合方向はその逆を意味します。結合方向のない同じ優先順位を持つ演算子は、それ自体と結合できない可能性があります。たとえば、PHP では 1 1 は無効なステートメントですが、1 例 #1 指示 と組み合わせて括弧を使用すると、厳密に必要でない場合でも、多くの場合、コードの可読性が向上します。
演算子の優先順位
結合方向 演算子 追加情報
なし 新しいクローンを作成します クローンと新しい
left [ array()
right ++ -- ~ (int) (float) (string) (array) (object) (bool) @ 型と増分/減少
なし タイプ のインスタンス
! 論理演算子
* / % 算術演算子
+ - . 算術演算子と文字列演算子
left 5a6869d7319793ee1f7e3b5b7ccae4db 比較演算子
left & ビット演算子と参照
left ^ ビット演算子
left | ビット演算子
left && 論理演算子
|| 論理演算子
? : 三項演算子
= += -= *= /= .= %= &= |= ^= 639513f5eb9d8dcbce09d6b5cb44cf73>= =>
Left 論理演算子
left xor 論理演算子
left または 論理演算子
left 詳細 どこでも使用されます
<?php
$a  =  3  *  3  %  5 ;  // (3 * 3) % 5 = 4
$a  =  true  ?  0  :  true  ?  1  :  2 ;  // (true ? 0 : true) ? 1 : 2 = 2

$a  =  1 ;
$b  =  2 ;
$a  =  $b  +=  3 ;  // $a = ($b += 3) -> $a = 5, $b = 5

// mixing ++ and + produces undefined behavior
$a  =  1 ;
echo ++ $a  +  $a ++;  // may print 4 or 5
?>
注:

= の優先順位は他のほとんどの演算子よりも低いですが、PHP では引き続き次のような式が許可されています: if (!$a = foo())、この場合は foo() 戻り値は $ に割り当てられます。 。

以上がPHPにおける演算子の優先順位はどのようになりますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。