Xem xét:
$xml = "l";
$xml = "vv";
echo $xml;
Điều này sẽ lặp lại vv . Tại sao và làm cách nào tôi có thể thực hiện các chuỗi nhiều dòng cho những thứ như SimpleXML , v.v.?
concatenation
. Đó là những gì nó được gọi khi bạn kết hợp các chuỗi.
Xem xét:
$xml = "l";
$xml = "vv";
echo $xml;
Điều này sẽ lặp lại vv . Tại sao và làm cách nào tôi có thể thực hiện các chuỗi nhiều dòng cho những thứ như SimpleXML , v.v.?
concatenation
. Đó là những gì nó được gọi khi bạn kết hợp các chuỗi.
Câu trả lời:
Tốt,
$xml = "l
vv";
Làm.
Bạn cũng có thể sử dụng như sau:
$xml = "l\nvv";
hoặc là
$xml = <<<XML
l
vv
XML;
Bạn có thể nối chuỗi bằng .=
toán tử.
$str = "Hello";
$str .= " World";
echo $str; //Will echo out "Hello World";
PHP có các chuỗi Heredoc và Nowdoc, đây là cách tốt nhất để xử lý các chuỗi đa dòng trong PHP.
http://php.net/manual/en/lingu.types.opes.php#lingu.types.opes.syntax.heredoc
$str = <<<EOD
Example of string
spanning multiple lines
using heredoc syntax.
$var is replaced automatically.
EOD;
Nowdoc giống như Heredoc, nhưng nó không thay thế các biến.
$str = <<<'EOD'
Example of string
spanning multiple lines
using nowdoc syntax.
$var is NOT replaced in a nowdoc.
EOD;
Lưu ý rằng mã thông báo cuối cùng EOD
không được thụt lề, hoặc PHP sẽ không thừa nhận nó. Ngoài ra, bạn không phải sử dụng " EOD
"; nó có thể là bất kỳ chuỗi nào bạn muốn
Không chắc chắn làm thế nào nó tăng cường hiệu năng, nhưng đối với những nơi không thực sự quan trọng, tôi thích định dạng này vì tôi có thể chắc chắn rằng nó đang sử dụng \ r \ n (CRLF) và không phải bất kỳ định dạng nào mà tệp PHP của tôi xảy ra lưu trong
$text="line1\r\n" .
"line2\r\n" .
"line3\r\n";
Nó cũng cho phép tôi thụt lề tuy nhiên tôi muốn.
Một giải pháp khác là sử dụng bộ đệm đầu ra , bạn có thể thu thập mọi thứ đang được xuất ra / lặp lại và lưu trữ nó trong một biến.
<?php
ob_start();
?>line1
line2
line3<?php
$xml = ob_get_clean();
Xin lưu ý rằng bộ đệm đầu ra có thể không phải là giải pháp tốt nhất về hiệu năng và độ sạch mã cho trường hợp chính xác này nhưng đáng để lại ở đây để tham khảo.
Có thể thử ". =" Indead of "="?
$xml="l";
$xml.="vv";
sẽ cung cấp cho bạn "lvv";
$xml="l\rn";
$xml.="vv";
echo $xml;
Nhưng bạn thực sự nên xem xét http://us3.php.net/simplexml
Để đặt các chuỗi "l" và "vv" trên các dòng riêng biệt trong mã:
$xml = "l";
$xml .= "vv"
echo $xml;
Trong trường hợp này, bạn đang nói nối thêm .=
chuỗi vào cuối phiên bản trước của biến chuỗi đó. Hãy nhớ rằng = chỉ là một toán tử gán vì vậy trong mã gốc của bạn, bạn đang gán cho biến một giá trị chuỗi mới.
Để đặt các chuỗi "l" và "vv" trên các dòng riêng biệt trong tiếng vang:
$xml = "l\nvv"
echo $xml;
Bạn không cần nhiều chuỗi trong trường hợp này, vì ký tự dòng mới \n
sẽ đảm nhiệm việc đó cho bạn.
Để đặt các chuỗi "l" và "vv" trên các dòng riêng biệt trong mã và khi lặp lại:
$xml = "l";
$xml .= "\nvv"
echo $xml;