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

PHPのヒアドキュメント構文に関する次の記述のうち、正しいものはどれか。

ヒアドキュメント(`<<<`)内では変数展開が行われる。 正解
ヒアドキュメントはシングルクォート文字列と全く同じ扱いになる。
Nowdoc構文(`<<<'ID'`)では変数展開が行われる。
ヒアドキュメントの終了識別子はインデントを付けてはならない。
解説
ヒアドキュメント(`<<<IDENTIFIER ... IDENTIFIER;`)は、ダブルクォート文字列と同じように、内部に書いた`$variable`が値に展開されます。 他の選択肢が誤りである理由は次の通りです。 ・ヒアドキュメントはシングルクォート文字列とは異なり、変数展開やエスケープシーケンスの解釈が行われます(挙動としてはダブルクォート文字列に近い構文です)。 ・Nowdoc構文(`<<<'IDENTIFIER'`のように識別子をシングルクォートで囲む)は、シングルクォート文字列と同様に変数展開が「行われません」。設問の記述はNowdocとHeredocの説明が逆になっています。 ・PHP 7.3以降、終了識別子には本文と同じインデントを付けることができるようになりました(フレキシブルヒアドキュメント構文)。 例: ``` $name = 'Taro'; $msg = <<<EOT こんにちは、{$name}さん。 EOT; echo $msg; // こんにちは、Taroさん。 ``` (参照: 独習PHP 第4版 第2章 PHPの基本 2.3.6節 ヒアドキュメント p.68〜69)