第2章 PHPの基本 / 第2回 模擬試験
PHPのデータ型に関する次の記述のうち、誤っているものはどれか。
PHPは動的型付け言語であり、変数の型は代入時に決まる。
`NULL`型の変数は`isset()`で`true`を返す。
正解
`is_int()`関数で変数が整数型かどうか確認できる。
浮動小数点数型は`float`または`double`と呼ばれる。
解説
`isset($var)`は、変数が定義済みであり、かつ値が`NULL`でない場合に`true`を返します。値が`NULL`の変数(または未定義の変数)に対しては`false`を返すため、「`isset()`で`true`を返す」という記述は誤りです。
他の選択肢が正しい理由は次の通りです。
・PHPは動的型付け言語で、変数の型は宣言時ではなく代入された値によって実行時に決まります。
・`is_int()`(エイリアス`is_integer()`, `is_long()`)は、変数の値が`int`型かどうかを判定します。
・浮動小数点数型は`float`と呼ばれますが、`gettype()`の戻り値などでは歴史的経緯から`"double"`と表示されることもあり、`double`という呼称も使われます。
例:
```
$a = null;
var_dump(isset($a)); // false
var_dump(array_key_exists('a', ['a' => null])); // true(issetとの違いに注意)
```
(参照: 独習PHP 第4版 第2章 PHPの基本 2.3節 データ型 p.60〜70)