PHP演算子の優先順位

怪我咯
リリース: 2023-03-10 21:22:02
オリジナル
10646 人が閲覧しました

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

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

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

array()type と増分/減分typeのインスタンスright!left* / %left+ – .算術演算子と文字列演算子leftビット演算子none== != === !== <>left&ビット演算子と参照left^ビット演算子left|ビット演算子left && 論理演算子左||論理演算子左? :三項演算子右= += -= *= /= .= %= &= | = ^= <<= >>= =>leftと論理演算子leftleft or論理演算子,は多くの場所で使用されます同じ優先順位の演算子の場合、左の結合方向は左から右への右の評価、右の結合方向、およびその逆を意味します。結合方向のない同じ優先順位を持つ演算子は、それ自体と結合できない可能性があります。たとえば、PHP では 1 1 は無効なステートメントですが、1 例 方向と組み合わせると、コードは次のようになります 追記: 厳密に必要でない場合でも、括弧を使用すると、通常、コードの可読性が向上します。 = の優先順位は他のほとんどの演算子よりも低いですが、PHP では引き続き次のような式が許可されています: if (!$a = foo())。この場合、foo() の戻り値は $a に割り当てられます。
right ++ — ~ (int) (float) (string) (array) (object) (bool) @
none
論理演算子
算術演算子
<< >>
比較演算子
代入演算子
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演算子の優先順位の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート