echo <<<HTML in PHP


echo <<<HTML in PHP

我需要使用一些脚本,在其中我发现了以下内容:

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

有人能提供更多关于$somevar = <<<DATA的信息吗。。。和CCD_ 2。。。似乎很难找到关于这方面的有用信息。

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

上面写着:第三种分隔字符串的方法是heredoc语法:<lt<。在这个运算符之后,会提供一个标识符,然后是一个换行符。字符串本身紧随其后,然后再次使用相同的标识符来结束引号

这是一个heredoc语法:

Heredoc

第三种分隔字符串的方法是heredoc语法:<lt<。在这个运算符之后,会提供一个标识符,然后是一个换行符。字符串本身紧随其后,然后再次使用相同的标识符来结束引号。

结束标识符必须从行的第一列开始。此外,标识符必须遵循与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";只是的一个例子

您需要使用<lt<在分隔符之前告诉PHP您要进入heredoc模式

PHP中使用了变量替换,这意味着您确实需要转义美元符号——如果不这样做,PHP将尝试替换变量。

您可以在文本中的任何位置使用分隔符,但不能在新行的第一列中使用

在字符串的末尾,只需键入不带空格的分隔符,然后用分号结束语句

如果没有heredoc语法,复杂的字符串分配很快就会变得非常混乱。Heredoc在野外并不经常使用——通常你会希望它被更多地使用,因为你会遇到太多的脚本因为不使用Heredoc而导致代码混乱!

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

这被称为Heredoc,您可以指定一个标识符,然后使用它来代替双引号字符串,这样您就不需要转义双引号了,因为您的字符串已经有了不同的分隔符。它有相同的转义规则和带有双引号字符串的解析规则(例如,'' n,'' r,变量解析等),但在使用Heredoc语法时不需要转义双引号。

{$desc}部分是卷曲语法,这是解析字符串中变量的一种复杂方法。复杂并不意味着难写。复杂意味着您可以有更多的选项来解析变量(例如,您可以将函数的返回值指定为变量名,然后解析该变量等)

有关heredoc和卷曲语法的更多信息,请查看此处:http://www.php.net/manual/en/language.types.string.php#language.types.string.syntax.heredoc