Chr*_*ish 47 php string heredoc operators
例如:
$sql = <<<MySQL_QUERY
Run Code Online (Sandbox Code Playgroud)
tda*_*ers 51
这是heredoc语法.你可以通过<<<加上你选择的一个令牌来启动一个heredoc字符串,并通过在新行上只放置令牌(没有别的!)来终止它.为方便起见,有一个例外:允许在结束分隔符后添加单个分号.
例:
echo <<<HEREDOC
This is a heredoc string.
Newlines and everything else is preserved.
HEREDOC;
Run Code Online (Sandbox Code Playgroud)
这是PHP的heredoc.
例:
$sql = <<<MySQL_QUERY
SELECT *
FROM TAB
WHERE A = 1 AND B = 2
MySQL_QUERY;
Run Code Online (Sandbox Code Playgroud)
我发现两者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;
Run Code Online (Sandbox Code Playgroud)
输出
HEREDOC: Variable A: "Hello" Variable B: "World"
NOWDOC: Variable A: "$a" Variable B: "$b"
Run Code Online (Sandbox Code Playgroud)
<br>使用 nl2br为每行添加这是有效的,因为 HEREDOC 将每个 \n 解释为实际行
// HEREDOC
echo nl2br(<<<HEREDOC
<strong> HEREDOC: </strong>
Variable A: "$a"
Variable B: "$b"
HEREDOC);
// Output HEREDOC:
//Variable A: "Hello"
//Variable B: "World"
Run Code Online (Sandbox Code Playgroud)
创建小组件
<?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
}
?>
Run Code Online (Sandbox Code Playgroud)
或者只输入一个字符串然后输出 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
?>
Run Code Online (Sandbox Code Playgroud)
这是heredoc语法.
$str = <<<EOD
Example of string
spanning multiple lines
using heredoc syntax.
EOD;
Run Code Online (Sandbox Code Playgroud)
这是一个heredoc,对于长串,你不必担心引号和诸如此类的东西.如果您注意到单词CHART,然后有一行显示CHART;,则表示字符串的结尾.
使用这种格式时要记住的重要事项是,无论使用什么字符串来定义字符串的结尾(例如在这种情况下为CHART),该字必须单独出现在一行上,后跟分号,并且不字符可以出现在同一行上的分号后,甚至是空格,否则PHP认为它是字符串的一部分.
| 归档时间: |
|
| 查看次数: |
38210 次 |
| 最近记录: |