第3章 演算子 / 第5回 模擬試験
次のコードの実行結果として正しいものはどれか。 ```php $data = ["a" => 1, "b" => 2, "c" => 3]; [$x, $y] = [$data["a"], $data["c"]]; print "$x, $y"; ```
1, 3
正解
1, 2
2, 3
エラーが発生する
解説
`[$x, $y] = [$data["a"], $data["c"]];`は、右辺の配列(`$data["a"]`の値と`$data["c"]`の値からなる配列)を、左辺の`$x`, `$y`に順番に分割代入します。
・`$data["a"]`は`1`
・`$data["c"]`は`3`
右辺の配列は`[1, 3]`となり、`$x = 1`, `$y = 3`が代入されます。
例:
```
$data = ["a" => 1, "b" => 2, "c" => 3];
[$x, $y] = [$data["a"], $data["c"]];
print "$x, $y"; // 1, 3
```
このように分割代入の右辺には、変数だけでなく任意の式(配列の要素へのアクセスなど)を組み合わせて配列リテラルを作ることもできます。
(参照: 独習PHP 第4版 第3章 演算子 3.2.2節 分割代入 p.98〜100)
関連する問題
- 次のコードの【 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; ```