Подтвердить что ты не робот

Многострочные строки в PHP

Рассмотрим:

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

echo $xml;

Это будет эхо vv. Почему и как я могу делать многострочные строки для таких вещей, как SimpleXML и т.д.?

4b9b3361

Ответ 1

Ну,

$xml = "l
vv";

Works.

Вы также можете использовать следующее:

$xml = "l\nvv";

или

$xml = <<<XML
l
vv
XML;

Изменить на основе комментария:

Вы можете объединить строки с помощью оператора .=.

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

Ответ 2

В 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;

A Nowdoc похож на Heredoc, но он не заменяет переменные.

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

Остерегайтесь, чтобы конечный токен EOD вообще не должен был отступать, или PHP не признает его. Кроме того, вам не нужно использовать "EOD"; это может быть любая строка, которую вы хотите.

Ответ 3

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

Будет эхо:

l
vv

Документация на PHP_EOL.

Ответ 4

Не уверен, как он складывается по производительности, но для мест, где это не имеет особого значения, мне нравится этот формат, потому что я могу быть уверен, что он использует \r\n (CRLF), а не какой-либо формат моего PHP файла возможно, сохраняется.

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

Он также позволяет мне отступать, но я хочу.

Ответ 5

Может быть, попробуйте ". =" indead of "="?

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

даст вам "lvv";

Ответ 6

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

echo $xml;

Но вы должны действительно заглянуть в http://us3.php.net/simplexml

Ответ 7

Чтобы поместить строки "l" и "vv" в отдельные строки только в коде:

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

В этом случае вы говорите, чтобы добавить .= строку в конец предыдущей версии этой строковой переменной. Помните, что = - это только оператор присваивания, поэтому в исходном коде вы присваиваете переменной новое строковое значение.

Поместить строки "l" и "vv" на отдельные строки только в эхо:

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

Вам не нужно несколько строк в этом экземпляре, так как новый символ линии \n позаботится об этом для вас.

Чтобы поместить строки "l" и "vv" в отдельные строки в коде и при эхом:

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