第3章 演算子 / 第4回 模擬試験

次のコードの実行結果として正しいものはどれか。 ```php $a = 5; $b = 2; print $a ** $b . " " . (-$a) ** 2; ```

25 25 正解
10 25
25 -25
10 -25
解説
`**`(べき乗演算子)は`*`より優先順位が高く評価されます。また、`(-$a) ** 2`のように丸括弧で囲むと、先に`-$a`(符号反転)が評価されてから、その結果がべき乗の対象になります。 ・`$a ** $b`は`5 ** 2 = 25`。 ・`(-$a) ** 2`は、まず`-$a = -5`となり、その`-5`の2乗である`(-5) ** 2 = 25`(負の数の2乗は正になる)。 例: ``` $a = 5; $b = 2; print $a ** $b . " " . (-$a) ** 2; // 25 25 ``` ちなみに、もし括弧を付けずに`-$a ** 2`と書いた場合は、`**`が単項マイナスより先に評価されるため`-(5 ** 2) = -25`となり、結果が変わる点に注意してください。 (参照: 独習PHP 第4版 第3章 演算子 3.1節 代数演算子 p.88〜93)