第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)