menu
ホーム > PHPの文法 > 4 演算子 > PHP の 演算子の優先順位と結合性
PHPリファレンス

UPDATE:2020年07月13日

PHP の 演算子の優先順位と結合性

PHP の 演算子の優先順位と結合性 | wepicks!

1 Minute Note

  • 演算子には 評価の優先順位 がある
  • ( ) 括弧 を使用して 計算の優先順位を変更
  • ( ) 括弧入れ子 にして使用できる
    その場合 内側の ( )括弧 内から計算 される
  • 優先順位が同じ場合は 結合性 によって 評価順 が決まる
  • 結合性は 左右どちらから計算するか の決まり
  • 結合性は 優先順位 であり演算子によって left 或いは right と決まっている
PHPの 演算子 には 優先順位があり、複数の演算子による式は優先順に評価されます。

優先順位について

POINT

  • 演算子には 評価の優先順位がある

演算子 には 評価の優先順位 があります。式の中に複数の演算子が登場した場合、優先順位に従って評価されます。例えば「*(乗算)」は「+(加算)」より優先されます。

結果は

50

となります。

5 * 8 の「*(乗算)」を先に行ってから、10 + 40 の「+(加算)」を行います。

では、「/(除算)」と「*(乗算)」の場合はどうでしょう。

結果は

16

となります。

10 / 5 の「*(除算)」を先に行ってから、2 * 8 の「+(乗算)」を行います。「/(除算)」と「*(乗算)」の優先順位は同じで、同じ場合、演算子の結合性によって評価の順番が決まります。
結合性については以降で説明します。

特定部分の計算を優先させたい場合

POINT

  • ( ) 括弧 を使用して 計算の優先順位を変更
  • ( ) 括弧入れ子 にして使用できる
    その場合 内側の ( )括弧 内から計算 される

強制的に特定部分の計算を優先させる場合は「()括弧」を使用します。「()括弧」内の計算が優先されて評価されます。

結果は

96

となります。

7 + 5 の「+(加算)」が先に計算され、次に、12 * 8 の「*(乗算)」が計算されます。

()括弧」を入れ子にした場合、内側の「()括弧」内から計算されます。

結果は

10

となります。

優先順位が同じ場合

POINT

  • 優先順位が同じ場合は 結合性 によって 評価順 が決まる
  • 結合性は 左右どちらから計算するか の決まり
  • 結合性は 優先順位 であり演算子によって left 或いは right と決まっている

同じ優先順位の演算子が式に複数使用された場合、その演算子の結合性によって評価する順番が 決まります。

演算子は、右(right)から計算するのか、あるいは左(left)から計算するのか、がそれぞれ決まっています。それが演算子の結合性です

右 から評価するのか 左 から評価するのかによって結果が異なります

左から評価した場合
[ 4 ]

右から評価した場合
[ 0.25 ]

乗算と除算の結合性はleftなので左から評価されます。

従って、

結果は

4

となります。

以下は両方同じ意です。

下の式は「括弧()」を使用して明示的に左から計算するようになっていますが、
乗算と除算の結合性は左(left)なので同じ意になります。

結果は

1

となります。

優先順位と結合性の表

優先順位の数字が高い方が優先されます。

優先順位結合時の評価演算子
19結合しないnew
18left[
17結合しない++
結合しない
right ~
right (int) (float) (string) (array) (object) (bool)
right @
結合しないinstanceof
right!
16left*
/
%
15left+

.
14left<<
>>
13結合しない<
<=
>
>=
<>
12結合しない==
!=
===
!==
11left&
10left^
9left|
8left&&
7left||
6left? :
5right =
+=
-=
*=
/=
.=
%=
&=
|=
^=
<<=
>>=
=>
4leftand
3leftxor
2leftor
1left,

分かりやすい式の記述

POINT

  • 「*(乗算)」と「/(除算)」は「+(加算)」と「-(減算)」より 優先 させる
  • それ以外は ( ) 括弧 を使用する

サンプルコード

– サンプル Click Here ! –

実行結果
乗算 優先順位
47

()括弧による優先順位の変更
96

乗算 除算 結合性と()括弧による優先順位の変更

4
4

乗算 除算 結合性と()括弧による優先順位の変更
1
1

乗算 除算 結合性と()括弧による優先順位の変更
1.875
1.875

– サンプル Click Here ! –


タグ(=記事関連ワード)

日付

公開日:2017年3月21日
最終更新日:2020年07月13日

配列関数サンプル

このカテゴリの他のページ

この記事へのコメント

トラックバックurl

https://wepicks.net/phpref-operatorsprecedence/trackback/

page top