Поміркуйте:
$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 з "="?
$xml="l";
$xml.="vv";
дасть вам "lvv";
$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;