[英]In PHP, what does "<<<" represent?
例如:
$sql = <<<MySQL_QUERY
这是heredoc 语法。 您可以通过将<<<
加上您选择的标记来开始一个 heredoc 字符串,并通过在新行中仅放置标记(而不是其他任何东西!)来终止它。 为方便起见,有一个例外:您可以在结束分隔符后添加一个分号。
例子:
echo <<<HEREDOC
This is a heredoc string.
Newlines and everything else is preserved.
HEREDOC;
它是使用HEREDOC 语法的字符串的开头。
分隔字符串的第三种方法是heredoc 语法:<<<。
在这个运算符之后,提供了一个标识符,然后是一个换行符。 紧随其后的是字符串本身,然后再次使用相同的标识符来关闭引号。
这是一个heredoc,对于长字符串,你不必担心引号之类的。 如果您注意到CHART 这个词,然后有一行显示CHART;,表示字符串的结尾。
使用这种格式时要记住的重要一点是,无论您使用什么字符串来定义字符串的结尾(例如本例中的 CHART),该单词都必须单独出现在一行中,后跟一个分号,并且 NO字符可以出现在同一行的分号之后,甚至是空格,否则 PHP 认为它是字符串的一部分。
这是heredoc 语法。
$str = <<<EOD
Example of string
spanning multiple lines
using heredoc syntax.
EOD;
要获得清晰的想法:
$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()
,这需要一些处理。 相反,我们可以使用<<<
运算符来节省一些时间并获得一些干净的代码。 :)
我发现Heredoc
和Nowdoc
在PHP
都非常强大和有用,我很惊讶到目前为止没有人给出更多关于你可以做什么的例子。
首先Heredoc
和Nowdoc
很简单,
Heredoc
: 就像 "" 双引号字符串一样可以放变量Nowdoc
:就像 '' 单引号字符串一样,没有解析变量对于以下示例,我将仅显示Heredoc
,为了制作Nowdoc
只需将标记包裹在单引号内 -> 'TOKEN'。
简单示例
$a = "Hello";
$b = "World";
// HEREDOC
echo <<<HEREDOC
<strong> HEREDOC: </strong>
Variable A: "$a"
Variable B: "$b"
HEREDOC;
echo '</br>';
// NOWDOC
echo <<<'NOWDOC'
<strong> NOWDOC: </strong>
Variable A: "$a"
Variable B: "$b"
NOWDOC;
输出
HEREDOC: Variable A: "Hello" Variable B: "World"
NOWDOC: Variable A: "$a" Variable B: "$b"
<br>
这是有效的,因为 HEREDOC 将每个 \\n 解释为实际的行
// HEREDOC
echo nl2br(<<<HEREDOC
<strong> HEREDOC: </strong>
Variable A: "$a"
Variable B: "$b"
HEREDOC);
// Output HEREDOC:
//Variable A: "Hello"
//Variable B: "World"
创建小组件
<?php foreach($tasks as $task) { // Create an HTML like component $component = <<<HEREDOC <div class="pure-u-1-3"> <div class="card"> <div class="card-header"> {$task['name']} </div> <div class="card-body"> <h5 class="card-title"> {$task['state']} </h5> <p class="card-text"> {$task['description']} </p> <a href="view?model=todo_list&task_id={$task['id']}" class="btn btn-primary">See Task Todos</a> </div> </div> </div> HEREDOC; echo $component; // Output } ?>
或者只是放入一个字符串然后输出 1 个回声
<?php
$taskRendered = '';
foreach($tasks as $task) {
// Create an HTML like component
$component = <<<HEREDOC
<div class="pure-u-1-3">
<div class="card">
<div class="card-header">
{$task['name']}
</div>
<div class="card-body">
<h5 class="card-title"> {$task['state']} </h5>
<p class="card-text"> {$task['description']} </p>
<a href="view?model=todo_list&task_id={$task['id']}" class="btn btn-primary">See Task Todos</a>
</div>
</div>
</div>
HEREDOC;
$taskRendered .= $component;
}
echo $taskRendered; // Output
?>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.