2012-07-19 102 views
3

我需要一些脚本工作,在至极,我发现这个:呼应<<< HTML在PHP

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

有人可以提供周围$somevar = <<<DATA详细信息...和... echo <<<HTML似乎很难找到有用的信息。

回答

5

It's一个定界符sintax:

定界符

的第三种方式来分隔字符串是定界符语法:< < <。在这个操作符之后,提供了一个标识符,然后是一个换行符。字符串本身遵循,然后再次使用相同的标识符来关闭引用。

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

有需要注意定界符几个关键的东西,和上面的例子:

你可以使用任何你喜欢的东西; “EOT”仅仅是一个例子

您需要使用< < <分隔符之前告诉PHP你想进入定界符模式

变量替换在PHP中使用,这意味着你需要逃离美元符号 - 如果你不这样做,PHP将尝试变量替换。

你可以在任何地方使用您的分隔符的文本,而不是在一个新行

的第一列在字符串的结尾,只需键入与它周围没有空格分隔符,然后是半冒号结束语句

没有heredoc语法,复杂的字符串赋值可能很快变得非常混乱。 Heredoc并非在野外常常使用 - 很多时候你会希望它被使用得更多,因为你会遇到太多的脚本,因为没有使用heredoc而会出现乱码!

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

1

这就是所谓的定界符,你可以指定一个标识符,然后用这个代替双引号中的字符串,所以你不会需要逃脱双引号,因为你已经为你的字符串不同的分隔符了。它使用双引号字符串(例如\ n,\ r,变量解析等)具有相同的转义规则和解析规则,但在使用Heredoc语法时不需要转义双引号。

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

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