эхо <


Мне нужно поработать с некоторыми сценариями, в которых я нашел это:

$data = <<<DATA
MIN={$min}
INVOICE={$invoice}
AMOUNT={$sum}
EXP_TIME={$exp_date}
DESCR={$descr}
DATA;

Может ли кто-нибудь предоставить дополнительную информацию о $somevar = <<<DATA... и echo <<<HTML... кажется, трудно найти полезную информацию об этом.

 3
Author: Burimi, 2012-07-19

3 answers

Это синтакс наследственности:

Наследственность

Третий способ разграничения строк - синтаксис heredoc:

Закрывающий идентификатор должен начинаться в первом столбце строки. Кроме того, идентификатор должен соответствовать тем же правилам именования, что и любая другая метка в PHP: он должен содержать только буквенно-цифровые символы и подчеркивает и должно начинаться с нецифрового символа или подчеркивания.

Вы можете прочитать больше об этом в документации php http://www.php.net/manual/en/language.types.string.php#language.types.string.syntax.heredoc

Дополнительная информация:

Пример:

<?php
$mystring = <<<EOT
This is some PHP text.
It is completely free
I can use "double quotes"
and 'single quotes',
plus $variables too, which will
be properly converted to their values,
you can even type EOT, as long as it
is not alone on a line, like this:
EOT;
?> 

Есть несколько ключевых моментов, которые следует отметить в heredoc, и пример выше:

Вы можете использовать все, что вам нравится; "EOT" - это просто пример

Вам нужно использовать

В PHP используется подстановка переменных, что означает, что вам нужно избегать символов доллара - если вы этого не сделаете, PHP попытается заменить переменную.

Вы можете использовать разделитель в любом месте текста, но не в первом столбце новой строки

В конце строки просто введите разделитель без пробелов вокруг него, а затем точку с запятой, чтобы закончить инструкцию

Без heredoc синтаксис, сложные назначения строк могут быстро стать очень запутанными. Heredoc не так часто используется в дикой природе - очень часто вам захочется, чтобы он использовался чаще, потому что слишком много сценариев, с которыми вы столкнетесь, имеют беспорядочный код в результате неиспользования heredoc!

Http://www.tuxradar.com/practicalphp/2/6/3

 5
Author: Sangar82, 2012-07-19 08:27:08

Http://www.php.net/manual/de/language.types.string.php#language.types.string.syntax.heredoc

В котором говорится: Третий способ разграничения строк - синтаксис heredoc:

 6
Author: mdo, 2012-07-19 08:25:38

Это называется Heredoc, вы можете указать идентификатор, а затем использовать его вместо строк в двойных кавычках, чтобы вам не нужно было экранировать двойные кавычки, потому что у вас уже есть другой разделитель для вашей строки. Он имеет те же правила экранирования и правила синтаксического анализа со строками в двойных кавычках (например, \n, \r, синтаксический анализ переменных и т.д.), Но вам не нужно экранировать двойные кавычки при использовании синтаксиса Heredoc.

{$desc} часть - это фигурный синтаксис, который представляет собой сложный способ анализа переменных в строка. Сложный не значит сложный для написания. Сложный означает, что у вас может быть больше возможностей для анализа переменной (например, вы можете назначить возвращаемое значение функции в качестве имени переменной, а затем проанализировать эту переменную и т. Д.)

Для получения дополнительной информации о синтаксисе heredoc и curly смотрите здесь: http://www.php.net/manual/en/language.types.string.php#language.types.string.syntax.heredoc

 1
Author: draconis, 2012-07-19 08:42:20