考虑:

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

echo $xml;

这将与vv相呼应。为什么以及如何为SimpleXML等做多行字符串?


当前回答

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

<?php
ob_start(); 

?>line1
line2
line3<?php 

$xml = ob_get_clean();

请注意,在这种情况下,就性能和代码整洁性而言,输出缓冲可能不是最好的解决方案,但值得留待参考。

其他回答

我不知道它的性能如何,但对于一些无关紧要的地方,我喜欢这种格式,因为我可以确定它使用的是\r\n (CRLF),而不是我的PHP文件碰巧保存的任何格式。

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

它还允许我任意缩进。

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

将回声:

l
vv

php_ol文档。

好吧,

$xml = "l
vv";

的工作原理。

你也可以使用以下方法:

$xml = "l\nvv";

or

$xml = <<<XML
l
vv
XML;

根据评论编辑:

可以使用.=操作符连接字符串。

$str = "Hello";
$str .= " World";
echo $str; //Will echo out "Hello World";

将字符串“l”和“vv”放在单独的代码行中:

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

在本例中,您要将.=字符串附加到该字符串变量的前一个版本的末尾。请记住,=只是一个赋值操作符,所以在原始代码中,您为变量分配了一个新的字符串值。

将字符串“l”和“vv”放在单独的echo行中:

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

在这个实例中,您不需要多个字符串,因为新的行字符\n将为您处理它。

将字符串"l"和"vv"放在代码和回显时的单独行中:

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

PHP有两个内置方法HEREDOC和NOWDOC来处理多行字符串。HEREDOC也有语法<<<。

下面是使用HEREDOC实现多行PHP字符串的示例,

<?php
echo <<<EOT
My name is BB. I am printing some Text.
Now, I am printing SECOND LINE.
This should print a capital 'A': \x41
EOT;
?>

注意:如果您想通过使用本地服务器检查上述代码的正确输出,则必须在CMD或XAMPP Shell上运行完整的代码。