我需要使用一些脚本,在其中我发现了以下内容:
$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