第5章 組み込み関数 / 第4回 模擬試験
PHPの`unset()`関数に関する次の記述のうち、正しいものはどれか。
`unset()`は変数を破棄(未定義の状態に)する関数である。
正解
`unset()`は変数の値を`0`にリセットする関数である。
`unset()`は配列全体を削除することはできず、要素単位でのみ使用できる。
`unset()`された変数は、`isset()`で`true`と判定される。
解説
`unset($var)`は、指定した変数そのものを破棄し、未定義の状態に戻す関数です。破棄された変数を`isset()`で調べると`false`が返ります。
他の選択肢が誤りである理由は次の通りです。
・`unset()`は変数を「破棄」する関数であり、値を`0`にリセットする(変数自体は存在し続ける)わけではありません。
・`unset()`は配列の特定の要素(`unset($arr[0])`)だけでなく、配列変数全体(`unset($arr)`)を破棄することもできます。
・`unset()`された変数を`isset()`で調べると`false`が返ります。「`true`と判定される」は誤りです。
例:
```
$name = 'Taro';
unset($name);
var_dump(isset($name)); // false
$arr = [1, 2, 3];
unset($arr[1]); // 要素だけ削除
print_r($arr); // [0=>1, 2=>3]
unset($arr); // 配列全体を削除
```
(参照: 独習PHP 第4版 第5章 組み込み関数 5.6.2節 変数を破棄する p.253)