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

次のコードの実行結果として正しいものはどれか。 ```php $x = "5"; $y = 3; $z = $x + $y; var_dump($z); ```

int(8) 正解
string(1) "8"
float(8)
エラーが発生する
解説
算術演算子`+`は数値として計算を行うため、数値の形式をした文字列`"5"`(string型)は自動的に数値に変換されます。`"5"`は小数点を含まないため`int`として扱われ、`5 + 3`の結果は`int(8)`になります。 例: ``` $x = "5"; $y = 3; $z = $x + $y; var_dump($z); // int(8) ``` もし`$x`が`"5.0"`のように小数点を含む文字列であれば、結果は`float(8)`になります。また文字列同士を「つなげる」場合は`+`ではなく`.`(連結演算子)を使う点に注意してください(`"5" . 3`は文字列`"53"`になります)。 (参照: 独習PHP 第4版 第2章 PHPの基本 2.5節 型の相互変換 p.82〜85)