在PHP中,“<<<”代表?

时间:2010-09-13 11:40:51

标签: php string operators heredoc

例如:

$sql = <<<MySQL_QUERY

7 个答案:

答案 0 :(得分:44)

这是heredoc语法。您可以通过将<<<加上您选择的标记来启动heredoc字符串,并通过仅将标记(以及其他内容!)放在新行上来终止它。为方便起见,有一个例外:允许在结束分隔符后添加一个分号。

示例:

echo <<<HEREDOC
This is a heredoc string.

Newlines and everything else is preserved.
HEREDOC;

答案 1 :(得分:16)

它是使用HEREDOC syntax.

的字符串的开头
  

分隔字符串的第三种方法是heredoc语法:&lt;&lt;&lt;。

     

在此运算符之后,提供标识符,然后提供换行符。字符串本身跟随,然后再次使用相同的标识符来关闭引用。

答案 2 :(得分:11)

这称为heredoc,它可以让你做一段长达几行的文本。您可以将PHP变量放在那里,它们将替换为值。 CHART这个词可以是任何东西。它只需要相同的开始和停止引用文本开始的位置。

您可以通过附加多个带引号的字符串来执行相同的操作,但是对于像此HTML文本这样的扩展文档,这大部分都是更干净的。还有一种称为nowdoc的东西,就像PHP中的单引号字符串,但这些字符串不允许你在其中使用变量。

答案 3 :(得分:9)

这是PHP的heredoc

示例:

$sql = <<<MySQL_QUERY
SELECT * 
FROM TAB 
WHERE A = 1 AND B = 2 
MySQL_QUERY;           

答案 4 :(得分:5)

这是heredoc syntax

$str = <<<EOD
Example of string
spanning multiple lines
using heredoc syntax.
EOD;

答案 5 :(得分:5)

这是一个heredoc,对于长串,你不必担心引号和诸如此类的东西。如果您注意到单词CHART,然后有一行显示CHART;,则表示字符串的结尾。

使用这种格式时要记住的重要事项是,无论使用哪种字符串来定义字符串的结尾(在本例中为CHART),该字必须单独出现在一行上,后跟分号,并且在同一行上的分号之后可以出现NO字符,甚至是空格,否则PHP认为它是字符串的一部分。

答案 6 :(得分:0)

要得到一个清晰的想法:

$data = array(
  "Id" => 12345,
  "Cutomer" => "hi",
  "Quantity" => 2,
  "Price" => 45
);

curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode($data));

如果我们使用 <<<

$data = <<<DATA
{
  "Id": 12345,
  "Customer": "John Smith",
  "Quantity": 1,
  "Price": 10.00
}
DATA;

curl_setopt($curl, CURLOPT_POSTFIELDS, $data);

结论:如果我们采用第一种方法,我们必须将其转换为 json_encode(),这需要一些处理。相反,我们可以使用 <<< 运算符来节省一些时间并获得一些干净的代码。 :)