ホームページ >バックエンド開発 >PHPチュートリアル >PHP学習メモ演算子優先順位_PHPチュートリアル
演算子の優先順位は、プログラマーが理解して習得する必要がある重要な知識点です。PHP の演算子の優先順位に関する記事を見てみましょう。
今日、Lao Wang の技術マニュアルで次の質問を見つけました:
コードは次のとおりです | コードをコピー |
出力は何ですか?
この質問は一見簡単そうに見えますが、よく考えてみると実は簡単ではありません。
ブール値と前の部分を言うと、それは優先順位の問題によるものですが、単に優先順位の問題であれば、結果は次のようになります。
コードをコピー | |
その理由は、PHP が優先度の定義に完全に準拠していないためです。これについては、PHP マニュアルでも説明されています。
注: = の優先順位は他のほとんどの演算子よりも低くなりますが、PHP では引き続き次のような式が許可されます: if (!$a = foo())。この場合、foo() の戻り値は $a に入れられます。 .私はそのような設計について個人的に意見を表明するつもりはありませんが、C 言語では、おそらく歴史的な理由から、このような記述は文法的に間違っていると判断されます。
好奇心旺盛な学生は、その理由を知りたいかもしれません:
こんにちはラルエンス:
PHP演算子の優先順位について質問する
コードは次のとおりです
$t == 1 && $tt = 2 | |
PHP演算子によると、優先順位は次のようになります |
コードは次のとおりです
(($t == 1) && $tt) = 2 | |
この注文は実行されますが、実際には実行されるはずです |
コードは次のとおりです
($t == 1) && ($tt = 2) | |
よく分かりません。 |
コードは次のとおりです
変数なしの式: | |||||||||||||||||||||||||||||||||||||||||||||||||||||||
最後に、ちなみに、PHPはT_BOOLEAN_ANDに対応しており、T_LOGICAL_AND(and)とT_LOGICAL_OR(or)も定義されており、どちらも等号よりも優先度が低いので、多くの場合に典型的なコード例になります。 PHP の入門書:
同様に、 or を使用して三項演算子 (?:): の関数を実装することもできます。
//以下と同等:
声明: この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。 |