PHPの全目次
数値と四則演算の目次
演算子の優先順位
四則演算で使用した演算子や、今後でてくる演算子には優先順位が決まっています。
例えば次の例を見てください。
5 + 4 * 3
「5 + 4」の結果に対して3を乗算すれば27ですが、5に対して「4 * 3」の結果を加算すれば17となりどの演算から行うのかで結果は異なります。このように複数の演算子が使われている式ではどの演算から行うのかが重要となります。
四則演算に関する演算子の優先順位は以下のようになっています。
(優先順位が高い)* / %+ -(優先順位が低い)
上の方が優先順位は高くなっています。そして同じ行の位置にある演算子は優先順位は同じです。
先ほどの例でいえば、「+」よりも「*」の優先順位が高いため先に「4 * 3」の演算が行われます。そしてその後に「5 + 12」という演算が行われます。
4 / 2 * 2
上記の場合、「*」と「/」の優先順位は同じですので、より左側にある「/」から先に演算が行われます。
括弧による優先順位の変更
演算子の優先順位とは異なる順序で演算を行いたい場合には括弧()を使います。演算子の優先順に関わらず括弧で囲まれた演算は先に演算が行われます。
(5 + 4) * 3
上の例の場合、演算子だけを見ると「+」と「*」では「*」の優先順位が高いですが、括弧で囲われた演算が先に行われますので、まず「5 + 4」が演算され次に「9 * 3」が演算されます。よって全体の演算結果は「27」となります。
括弧の中に複数の演算子が使われている場合は演算子の優先順位によって演算が行われます。また括弧が多重に使用されている場合は内側の括弧が先に演算されます。
2 * ((5 + 3) * 4 – (4 + 5) / 3)
上記の場合は次のように演算が行われます。
1)5 + 3 = 8 // 2 * (8 * 4 – (4 + 5) / 3)2)4 + 5 = 9 // 2 * (8 * 4 – 9 / 3)3)8 * 4 = 32 // 2 * (32 – 9 / 3)4)9 / 3 = 3 // 2 * (32 – 3)5)32 – 3 = 29 // 2 * 296)2 * 29 = 58
複雑な式であっても括弧と優先順位よって必ず演算される順序は1つに決まります。
その他の演算子に関する優先順位は「演算子の優先順位」を参照してください。
サンプルコード
▼Example-number3-1.php
<!DOCTYPE html><html lang=”ja”><head><meta http-equiv=”Content-Type” content=”text/html;charset=UTF-8″ /><title>PHPテスト</title></head><body>
<p>PHPのテストです。</p>
<p><?phpecho “5 + 3 * 4 = “, 5 + 3 * 4, ‘<br />’;echo “(5 + 3) * 4 = “, (5 + 3) * 4;?></p>
</body></html>
上記のファイルをwwwサーバーのドキュメントルート以下に設置しブラウザーからアクセスすると次のように表示されます。