第3章 演算子 / 第2回 模擬試験
PHPの論理演算子に関する次の記述のうち、誤っているものはどれか。
`&&`は両方の条件が`true`のとき`true`を返す。
`||`はどちらか一方が`true`であれば`true`を返す。
`and`と`&&`は全く同じ優先順位を持つ。
正解
`!`は論理否定(NOT)を表す。
解説
`and`と`&&`は、どちらも論理積(AND)を表す点では同じですが、演算子の優先順位が異なります。`&&`は代入演算子`=`より優先順位が高く、`and`は`=`より優先順位が低いため、「全く同じ優先順位」という記述は誤りです。
他の選択肢が正しい理由は次の通りです。
・`&&`は左右両方のオペランドが`true`の場合にのみ`true`を返します。
・`||`は左右どちらか一方でも`true`であれば`true`を返します。
・`!`は単項演算子で、オペランドの真偽値を反転させます(論理否定)。
例:
```
$result = true and false; // $result は true(= が and より先に評価される)
$result2 = true && false; // $result2 は false(&& が = より先に評価される)
```
このように単純な真偽判定では同じ結果になることが多い`and`/`&&`ですが、代入と組み合わせると優先順位の違いが結果に影響することがあるため注意が必要です。
(参照: 独習PHP 第4版 第3章 演算子 3.4節 論理演算子 p.110〜111)
関連する問題
- 次のコードの【 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 $a = 10; $b = 3; print $a / $b . " " . intdiv($a, $b) . " " . $a % $b; ```
- PHPの比較演算子に関する次の記述のうち、正しいものはどれか。