2012-07-19 86 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