Рассматривать:
$xml = "l";
$xml = "vv";
echo $xml;
Это будет эхом vv . Почему и как я могу создавать многострочные строки для таких вещей, как SimpleXML и т. Д.?
concatenation
. Вот как это называется, когда вы собираете строки.
Рассматривать:
$xml = "l";
$xml = "vv";
echo $xml;
Это будет эхом vv . Почему и как я могу создавать многострочные строки для таких вещей, как SimpleXML и т. Д.?
concatenation
. Вот как это называется, когда вы собираете строки.
Ответы:
Хорошо,
$xml = "l
vv";
Работает.
Вы также можете использовать следующее:
$xml = "l\nvv";
или
$xml = <<<XML
l
vv
XML;
Вы можете объединять строки, используя .=
оператор.
$str = "Hello";
$str .= " World";
echo $str; //Will echo out "Hello World";
В 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 его не признает. Кроме того, вам не нужно использовать " EOD
"; это может быть любая строка, которую вы хотите.
Не уверен, как это складывается с точки зрения производительности, но для мест, где это на самом деле не имеет значения, мне нравится этот формат, потому что я могу быть уверен, что он использует \ r \ n (CRLF), а не тот формат, в котором мой PHP-файл оказался сохранено в
$text="line1\r\n" .
"line2\r\n" .
"line3\r\n";
Это также позволяет мне делать отступы так, как я хочу.
Другое решение - использовать буферизацию вывода , вы можете собрать все, что выводится / выводится, и сохранять его в переменной.
<?php
ob_start();
?>line1
line2
line3<?php
$xml = ob_get_clean();
Обратите внимание, что буферизация вывода может быть не лучшим решением с точки зрения производительности и чистоты кода для этого конкретного случая, но стоит оставить его здесь для справки.
Может быть, попробовать ". =" Indead of "="?
$xml="l";
$xml.="vv";
даст вам "лвв";
$xml="l\rn";
$xml.="vv";
echo $xml;
Но вы действительно должны заглянуть в http://us3.php.net/simplexml
Чтобы поместить строки "l" и "vv" в отдельные строки только в коде:
$xml = "l";
$xml .= "vv"
echo $xml;
В этом случае вы говорите добавить .=
строку в конец предыдущей версии этой строковой переменной. Помните, что = является только оператором присваивания, поэтому в исходном коде вы присваиваете переменной новое строковое значение.
Чтобы поместить строки "l" и "vv" в отдельные строки только в эхо:
$xml = "l\nvv"
echo $xml;
Вам не нужно несколько строк в этом случае, так как символ новой строки \n
позаботится об этом за вас.
Чтобы поместить строки "l" и "vv" в отдельные строки кода и при отображении:
$xml = "l";
$xml .= "\nvv"
echo $xml;