第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)
関連する問題
- 次のコードの【 A 】に入れた場合に`true`が返される組み合わせとして正しいものはどれか。 ```php if (【 A 】) { print("true"); } else { print("false"); } 【1】"php" > "perl" 【2】0 != "0" 【3】5 - 6 + 1 【4】"false" 【5】0 + false 【6】"543a" < 56 【7】abs(-6) > 10 / 2 ```
- 次のコードの実行結果として正しいものはどれか。 ```php $a = 2 + 3 * 6; $b = $a % 7; $c = $b ** 2; print($c); ```
- PHPの論理演算子に関する次の記述のうち、正しいものはどれか。
- PHPの論理演算子に関する次の記述のうち、誤っているものはどれか。
- 次のコードの実行結果として正しいものはどれか。 ```php $a = 10; $b = 3; print $a / $b . " " . intdiv($a, $b) . " " . $a % $b; ```