第2章 PHPの基本 / 第1回 模擬試験

PHPの型の相互変換に関する次の記述のうち、正しいものはどれか。

PHPでは明示的な型変換(キャスト)はサポートされていない。
文字列と数値の演算では、PHPは常にエラーを発生させる。
`int`型へのキャストは、小数点以下を切り捨てる。 正解
`bool`型へのキャストでは、空の文字列は`true`になる。
解説
`(int)`によるキャストは、小数点以下を切り捨てて整数部分のみを残します(四捨五入ではありません)。 他の選択肢が誤りである理由は次の通りです。 ・PHPは`(int)`, `(float)`, `(string)`, `(bool)`, `(array)`などのキャスト構文による明示的な型変換をサポートしています。 ・文字列と数値を演算した場合、PHPは可能な範囲で自動的に型変換を行います。数値として解釈できない文字列を演算した場合など一部のケースで警告や`TypeError`が発生することはありますが、「常にエラー」ではありません。 ・`bool`型へのキャストでは、空の文字列`''`、`'0'`、`0`、`0.0`、空配列`[]`、`null`は`false`になります。それ以外の文字列は`true`になります。 例: ``` var_dump((int) 3.9); // int(3) var_dump((int) -3.9); // int(-3) var_dump((bool) ''); // bool(false) ``` (参照: 独習PHP 第4版 第2章 PHPの基本 2.5節 p.82〜85)