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

例如:

$sql = <<<MySQL_QUERY
81122 次浏览

它是使用 HEREDOC 语法。的字符串的开头

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

在这个操作符之后,提供一个标识符,然后是换行符。字符串本身紧随其后,然后再次使用相同的标识符来结束引号。

是 PHP 的 heredoc

例如:

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

Heredoc 语法

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

这是 Heredoc 的语法。您可以通过将 <<<加上您选择的令牌来启动一个 herdoc 字符串,并通过只放置令牌(没有其他内容!)来终止它一条新线路。为了方便起见,有一个例外: 您可以在结束分隔符之后添加一个分号。

例如:

echo <<<HEREDOC
This is a heredoc string.


Newlines and everything else is preserved.
HEREDOC;

这就是所谓的 Herdoc,它让您做一个长的文本,超过几行。您可以将 PHP 变量放入其中,它们将被替换为。图表这个词可以是任何东西。只需要在引用文本开始的地方开始和结束就可以了。

您可以通过附加多个带引号的字符串来做同样的事情,但是对于像这样的 HTML 文本这样的扩展文档来说,这在大多数情况下是比较干净的。还有一个类似于 PHP 中单引号字符串的 现在,博士,但它不允许在其中使用变量。

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

在使用这种格式时,需要记住的重要一点是,无论你使用什么字符串来定义字符串的结尾(比如本例中的 CHART) ,这个单词必须单独出现在一行中,后面跟一个分号,并且在同一行的分号后面不能出现任何字符,即使是空格,否则 PHP 会认为它是字符串的一部分。

为了得到一个明确的想法:

$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(),这需要一些处理。相反,我们可以使用 <<<操作符来节省一些时间并获得一些干净的代码。:)

我发现 HeredocNowdocPHP中都非常强大和有用,我很惊讶到目前为止还没有人给出更多的例子来说明你能做什么。

首先,HeredocNowdoc的区别很简单,

  • 就像“”双引号字符串你可以放 变量
  • Nowdoc: 类似于“单引号字符串 不解析任何变量

对于下面的示例,我将只显示 Heredoc,为了使 Nowdoc只是将令牌包装在单引号中-> ‘ TOKEN’。

特点及优点

  • 可以根据需要添加“和”,并且不会导致任何错误
  • 使用动态变量轻松输出 HTML 代码,避免 usesell 串联。
  • 存储在字母使用的变量,可以创建小组件,只是输出它们。
  • 使用’n’字面解释 Lines,因此类似于在 doc 中编写,对于使用 nl2br 添加 < br > 也很有用。

举个简单的例子

$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"

食谱

  1. 使用 nl2br 为每一行添加 <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"
  1. 创建小型组件

         <?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个 echo 输出

    <?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
    

?>

文件