2014-09-01 3 views
-2

Почему этот код блокирует $ text?

$text = 'This is text'; 

$text1 = <<<'TEXT' 
$text 
TEXT; 

$text2 = <<<TEXT 
$text1 
TEXT; 

echo "$text2"; 

Первый Heredoc (в $ text1) является 'TEXT', с одной цитаты, это так же, как второй Heredoc (в $ text2)?

PS. Этот вопрос касается heredoc и nowdoc, а не одиночных и двойных кавычек. Это не дубликат

+0

Nowdocs не интерполируют переменные. См. [Руководство по строкам] (http://php.net/manual/en/language.types.string.php#language.types.string.syntax.nowdoc). – mario

+0

, потому что вы сообщите об этом – 2014-09-01 22:42:53

+0

Первым из них является [nowdoc] (http://php.net/manual/en/language.types.string.php#language.types.string.syntax.nowdoc). – raina77ow

ответ

0

HEREDOC с одинарными кавычками (NOWDOC) не анализирует содержимое для любых переменных.

Nowdocs - это строки с одним кавычком, что heredocs для строк с двойными кавычками. A nowdoc задается аналогично heredoc, но синтаксический анализ не выполняется внутри nowdoc.

http://php.net/manual/en/language.types.string.php#language.types.string.syntax.heredoc

0

Первый из них является nowdoc, второй является heredoc. Они не одинаковы.

Nowdocs - это строки с одним кавычком, что heredocs для строк с двумя кавычками. A nowdoc задается аналогично heredoc, но синтаксический анализ не выполняется внутри nowdoc.

Смежные вопросы