PHP中的多行字符串

考虑:

$xml = "l";
$xml = "vv";

echo $xml;

这将回应vv。 为什么以及如何为SimpleXML之类的东西做多行字符串?

TheBlackBenzKid asked 2019-08-12T08:07:48Z
8个解决方案
202 votes

好,

$xml = "l
vv";

作品。

您还可以使用以下内容:

$xml = "l\nvv";

要么

$xml = <<<XML
l
vv
XML;

根据评论进行编辑:

您可以使用.=运算符连接字符串。

$str = "Hello";
$str .= " World";
echo $str; //Will echo out "Hello World";
Madara Uchiha answered 2019-08-12T08:08:28Z
93 votes

PHP有Heredoc和Nowdoc字符串,这是处理PHP中多行字符串的最佳方法。

[http://php.net/manual/en/language.types.string.php#language.types.string.syntax.heredoc]

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

Nowdoc就像一个Heredoc,但它并没有取代变量。

$str = <<<'EOD'
Example of string
spanning multiple lines
using nowdoc syntax.
$var is NOT replaced in a nowdoc.
EOD;

请注意,结尾标记EOD一定不能缩进,否则PHP不会承认它。 此外,您不必使用&#34; EOD&#34 ;; 它可以是你想要的任何字符串。

Dan Fabulich answered 2019-08-12T08:09:14Z
8 votes
$xml="l" . PHP_EOL;
$xml.="vv";
echo $xml;

回声:

l
vv

有关PHP_EOL的文档。

Ryan answered 2019-08-12T08:09:45Z
4 votes

不确定它在性能方面是如何叠加的,但对于那些并不重要的地方,我喜欢这种格式,因为我可以肯定它正在使用\ r \ n(CRLF),而不是我的PHP文件发生的任何格式 被保存

$text="line1\r\n" .
      "line2\r\n" .
      "line3\r\n";

它也让我缩进,但我想要。

eselk answered 2019-08-12T08:10:16Z
2 votes

也许试试&#34;。=&#34; 并且#34; =&#34;?

$xml="l";
$xml.="vv";

会给你&#34; lvv&#34 ;;

Norbert Orzechowicz answered 2019-08-12T08:10:48Z
1 votes

另一种解决方案是使用输出缓冲,您可以收集正在输出/回显的所有内容并将其存储在变量中。

<?php
ob_start(); 

?>line1
line2
line3<?php 

$xml = ob_get_clean();

请注意,对于这个确切的情况,输出缓冲可能不是性能和代码清洁度方面的最佳解决方案,但值得将其留在此处以供参考。

Xavi Esteve answered 2019-08-12T08:11:19Z
0 votes
$xml="l\rn";
$xml.="vv";

echo $xml;

但是你应该深入研究[http://us3.php.net/simplexml]

nathanjosiah answered 2019-08-12T08:11:45Z
0 votes

把字符串&#34; l&#34; 和&#34; vv&#34; 仅在代码中的单独行上:

$xml = "l";
$xml .= "vv"
echo $xml;

在这种情况下,您要说的是将字符串附加到该字符串变量的先前版本的末尾\n。 请记住,=只是一个赋值运算符,因此在原始代码中,您需要为变量赋一个新的字符串值。

把字符串&#34; l&#34; 和&#34; vv&#34; 仅在回声的单独行上:

$xml = "l\nvv"
echo $xml;

在这种情况下,您不需要多个字符串,因为新行字符\n将为您处理。

把字符串&#34; l&#34; 和&#34; vv&#34; 在代码中的单独行和回显时:

$xml = "l";
$xml .= "\nvv"
echo $xml;
Shawn Solomon answered 2019-08-12T08:12:39Z
translate from https://stackoverflow.com:/questions/9744192/multi-line-strings-in-php