「PHP/入門/変数と値」の版間の差分

削除された内容 追加された内容
Ef3 (トーク | 投稿記録)
→‎演算子の優先順位と結合方向: →‎演算子の優先順位: PHPも、多くのプログラミング言語と同じく演算子に優先順位があります。→‎演算子の結合方向: 演算子の結合方向 異なる優先順位の演算子であれば、優先順位に従い評価すればよいのですが、同じ優先順位の演算子が続いた場合はどうでしょう。
タグ: 2017年版ソースエディター
Ef3 (トーク | 投稿記録)
タグ: 2017年版ソースエディター
169 行
の順で評価されます(それぞれの演算子の優先順位については、後ほど表にまとめます)。
 
=== 演算子の結合方向 ===
異なる優先順位の演算子であれば、優先順位に従い評価すればよいのですが、同じ優先順位の演算子が続いた場合はどうでしょう。
1 + 2 + 3
191 行
2 ** ( 3 ** 4 )
の順(右結合)で評価されます。
 
=== 演算子の優先順位表 ===
:{| class="wikitable"
|+演算子の優先順位
!結合方向
!演算子
!備考
|-
|(非)
|<code>clone</code> <code>new</code>
|clone と new
|-
|右
|<code>**</code>
|算術
|-
|(非)
|<code>+</code> <code>-</code> <code>++</code> <code>--</code> <code>~</code> <code>(int)</code> <code>(float)</code> <code>(string)</code> <code>(array)</code> <code>(object)</code> <code>(bool)</code> <code>@</code>
|算術 (単項<code>+</code> と <code>-</code>), インクリメント/デクリメント, ビット演算, キャストとエラー制御
|-
|左
|<code>instanceof</code>
|型
|-
|(非)
|<code>!</code>
|論理
|-
|左
|<code>*</code> <code>/</code> <code>%</code>
|算術
|-
|左
|<code>+</code> <code>-</code> <code>.</code>
|算術 (binary <code>+</code> と <code>-</code>), array と string (<code>.</code> はPHP 8.0.0以降)
|-
|左
|<code><<</code> <code>>></code>
|ビット演算
|-
|左
|<code>.</code>
|string (PHP 8.0.0以前)
|-
|(無)
|<code><</code> <code><=</code> <code>></code> <code>>=</code>
|比較演算子
|-
|(無)
|<code>==</code> <code>!=</code> <code>===</code> <code>!==</code> <code><></code> <code><=></code>
|比較演算子
|-
|左
|<code>&</code>
|ビット演算 と リファレンス
|-
|左
|<code>^</code>
|ビット演算
|-
|左
|<code><nowiki>|</nowiki></code>
|ビット演算
|-
|左
|<code>&&</code>
|論理積
|-
|左
|<code><nowiki>||</nowiki></code>
|論理和
|-
|右
|<code>??</code>
|null 合体演算子
|-
|(無)
|<code>? :</code>
|条件演算 (PHP 8.0.0より前は左結合)
|-
|右
|<code>=</code> <code>+=</code> <code>-=</code> <code>*=</code> <code>**=</code> <code>/=</code> <code>.=</code> <code>%=</code> <code>&=</code> <code><nowiki>|=</nowiki></code> <code>^=</code> <code><<=</code> <code>>>=</code> <code>??=</code>
|代入
|-
|(非)
|<code>yield from</code>
|yield from
|-
|(非)
|<code>yield</code>
|yield
|-
|(非)
|<code>print</code>
|print
|-
|左
|<code>and</code>
|論理積
|-
|左
|<code>xor</code>
|排他的論理和
|-
|左
|<code>or</code>
|論理和
|}
 
== リテラル ==