我们在用
PHP建设网站时,经常会需要创建多行字符串,我们了解了在 PHP 中创建多行字符串的三种不同方法。使用PHP_EOL创建多行字符串可帮助您避免硬编码换行值,同时使用 Heredoc 语法确保您不必担心转义引号。
如您所知,我们可以使用单引号和双引号在 PHP 中创建字符串。我们也有特殊的转义序列来输出特殊字符。例如,我们可以使用\n换行符和\r回车符。在你的字符串中写入\n或\r\n在你的字符串中会给你新的 PHP 行。这使您可以轻松创建多行字符。但是,您必须记住,这些转义序列仅适用于双引号字符串。尝试在单引号内使用它们将完全按照输入的方式输出它们。
以下是在 PHP 中使用双引号创建多行字符串的一些示例:
<font style="vertical-align: inherit;"><font style="vertical-align: inherit;"><?php</font></font><font></font>
<font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
$single_quote = '你好吗?\n我很好。';</font></font><font></font>
<font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
$double_quote = "你好吗?\n我很好。";</font></font><font></font>
<font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
// 你好吗?\n我很好。</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
回声 $single_quote;</font></font><font></font>
<font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
/*</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
你好吗?</font></font><font></font>
I am fine.<font></font>
*/<font></font>
echo $double_quote;<font></font>
<font></font>
?>
用于PHP_EOL创建多行字符串,PHP_EOL借助常量,您可以避免在代码中使用硬编码的换行符序列。此常量将为运行脚本的当前平台自动创建正确的行尾符号。
<?php<font></font>
<font></font>
$string_php_eol = "How are you?".PHP_EOL."I am fine.";<font></font>
<font></font>
$php_eol_a = "How are you?".PHP_EOL;<font></font>
$php_eol_b = "I am fine.".PHP_EOL;<font></font>
$php_eol_c = "Want to go out tonight?".PHP_EOL;<font></font>
$php_eol_d = "Yes, definitely.".PHP_EOL;<font></font>
<font></font>
$joined_string_php_eol = $php_eol_a.$php_eol_b.$php_eol_c.$php_eol_d;<font></font>
<font></font>
/*<font></font>
How are you?<font></font>
I am fine.<font></font>
*/<font></font>
echo $string_php_eol;<font></font>
<font></font>
/*<font></font>
How are you?<font></font>
I am fine.<font></font>
Want to go out tonight?<font></font>
Yes, definitely. */<font></font>
echo $joined_string_php_eol;<font></font>
<font></font>
?>
在 PHP 中创建多行字符串的第三种方法涉及使用 Heredoc 和 Nowdoc 语法。Heredoc 语法要求我们在运算符之后提供一个标识符和一个新行<<<。之后,我们编写自己的字符串并再次使用相同的标识符来标记多行字符串的结尾。从 PHP 7.3.0 开始,您可以在结束标识符之前添加缩进。但是,请记住,结束标识符的缩进不会超出多行字符串中任何行的缩进。还要确保缩进中没有空格和制表符的混合。
<?php<font></font>
<font></font>
$name = "Monty";<font></font>
<font></font>
$heredoc_a = <<<HEREA<font></font>
How are you, $name?<font></font>
I am fine.<font></font>
What to go out tonight?<font></font>
Yes, definitely.<font></font>
HEREA;<font></font>
<font></font>
$heredoc_b = <<<HEREB<font></font>
How are you, $name?<font></font>
I am fine.<font></font>
What to go out tonight?<font></font>
Yes, definitely.<font></font>
HEREB;<font></font>
<font></font>
/*<font></font>
How are you, Monty?<font></font>
I am fine.<font></font>
What to go out tonight?<font></font>
Yes, definitely.<font></font>
*/<font></font>
echo $heredoc_a;<font></font>
<font></font>
/*<font></font>
How are you, Monty?<font></font>
I am fine.<font></font>
What to go out tonight?<font></font>
Yes, definitely.<font></font>
*/<font></font>
echo $heredoc_b;<font></font>
<font></font>
?>
正如您在上面的示例中所见,Heredoc 语法中的文本的行为就像它在双引号内一样。如果您想要模拟单引号字符串的行为怎么办?在这里您会发现 Nowdoc 语法很有用。