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

次のコードの実行結果として正しいものはどれか。 ```php $price = 100; $str1 = 'Price: $price yen'; $str2 = "Price: $price yen"; print $str1 . " / " . $str2; ```

Price: $price yen / Price: 100 yen 正解
Price: 100 yen / Price: 100 yen
Price: $price yen / Price: $price yen
エラーが発生する
解説
シングルクォート文字列(`'...'`)の中では、変数展開(`$variable`をその値に置き換える処理)が行われず、`$price`という文字がそのまま出力されます。一方、ダブルクォート文字列(`"..."`)の中では変数展開が行われ、`$price`は変数の値(`100`)に置き換わります。 例: ``` $price = 100; $str1 = 'Price: $price yen'; $str2 = "Price: $price yen"; print $str1 . " / " . $str2; // 出力: Price: $price yen / Price: 100 yen ``` シングルクォート文字列内で`$`をそのまま出力したい場合は特別なエスケープが不要なのに対し、ダブルクォート文字列内で`$`をリテラルとして出力したい場合は`$price`のようにエスケープが必要になる点も対照的です。 (参照: 独習PHP 第4版 第2章 PHPの基本 2.3.5節 シングルクォート文字列とダブルクォート文字列の違い p.65〜67)