$str = <<<EOD
Example of string
spanning multiple lines
using heredoc syntax.$var is replaced automatically.
EOD;
Nowdoc seperti Heredoc, tetapi tidak menggantikan variabel.
$str = <<<'EOD'
Example of string
spanning multiple lines
using nowdoc syntax.
$var is NOT replaced in a nowdoc.
EOD;
Berhati-hatilah bahwa token akhir EODtidak boleh diindentasi sama sekali, atau PHP tidak akan mengakuinya. Selain itu, Anda tidak harus menggunakan " EOD"; itu bisa berupa string apa pun yang Anda inginkan.
Suara positif karena saya selalu melupakan indentasi.
Matuszek
11
Tidak yakin bagaimana cara menumpuk dari segi kinerja, tetapi untuk tempat-tempat yang tidak terlalu penting, saya suka format ini karena saya yakin itu menggunakan \ r \ n (CRLF) dan bukan format apa pun yang kebetulan file PHP saya disimpan dalam.
$text="line1\r\n" .
"line2\r\n" .
"line3\r\n";
Ini juga memungkinkan saya membuat indentasi sesuka saya.
Apakah ada cara untuk menandai jawaban? Saya selalu berpikir Anda hanya bisa melakukan itu pada pertanyaan. @TheBlBenzKid
Pacerier
Maksud saya, saya memberinya plus +1 saat saya mengembalikannya.
TheBlackBenzKid
@TheBllBenzKid "faved";)
Andrés Morales
5
Solusi lain adalah dengan menggunakan buffering keluaran , Anda dapat mengumpulkan semua yang dikeluarkan / di-echo dan menyimpannya dalam sebuah variabel.
Harap dicatat bahwa buffering keluaran mungkin bukan solusi terbaik dalam hal kinerja dan kebersihan kode untuk kasus yang tepat ini tetapi sebaiknya tinggalkan di sini untuk referensi.
Apa dia bilang sistem operasi penyihir yang dia gunakan? Sebuah jawaban lengkap sebagai pertanyaan;)
Norbert Orzechowicz
Namun, itu tidak menghasilkan string multi-baris seperti yang diminta.
ToolmakerSteve
1
Untuk meletakkan string "l" dan "vv" pada baris terpisah dalam kode saja:
$xml = "l";
$xml .= "vv"echo $xml;
Dalam contoh ini Anda mengatakan untuk menambahkan .=string ke akhir versi sebelumnya dari variabel string itu. Ingatlah bahwa = hanyalah operator penugasan, jadi dalam kode asli Anda, Anda menetapkan nilai string baru untuk variabel.
Untuk meletakkan string "l" dan "vv" pada baris terpisah di echo saja:
$xml = "l\nvv"echo $xml;
Anda tidak memerlukan banyak string dalam hal ini, karena karakter baris baru \nakan mengurusnya untuk Anda.
Untuk meletakkan string "l" dan "vv" pada baris terpisah dalam kode dan saat menggema:
concatenation
. Itulah sebutannya saat Anda mengumpulkan string.Jawaban:
Baik,
$xml = "l vv";
Bekerja.
Anda juga dapat menggunakan yang berikut ini:
$xml = "l\nvv";
atau
$xml = <<<XML l vv XML;
Edit berdasarkan komentar:
Anda dapat menggabungkan string menggunakan
.=
operator.$str = "Hello"; $str .= " World"; echo $str; //Will echo out "Hello World";
sumber
PHP memiliki string Heredoc dan Nowdoc, yang merupakan cara terbaik untuk menangani string multiline di 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 seperti Heredoc, tetapi tidak menggantikan variabel.
$str = <<<'EOD' Example of string spanning multiple lines using nowdoc syntax. $var is NOT replaced in a nowdoc. EOD;
Berhati-hatilah bahwa token akhir
EOD
tidak boleh diindentasi sama sekali, atau PHP tidak akan mengakuinya. Selain itu, Anda tidak harus menggunakan "EOD
"; itu bisa berupa string apa pun yang Anda inginkan.sumber
Tidak yakin bagaimana cara menumpuk dari segi kinerja, tetapi untuk tempat-tempat yang tidak terlalu penting, saya suka format ini karena saya yakin itu menggunakan \ r \ n (CRLF) dan bukan format apa pun yang kebetulan file PHP saya disimpan dalam.
$text="line1\r\n" . "line2\r\n" . "line3\r\n";
Ini juga memungkinkan saya membuat indentasi sesuka saya.
sumber
$xml="l" . PHP_EOL; $xml.="vv"; echo $xml;
Akan bergema:
Dokumentasi tentang PHP_EOL .
sumber
Solusi lain adalah dengan menggunakan buffering keluaran , Anda dapat mengumpulkan semua yang dikeluarkan / di-echo dan menyimpannya dalam sebuah variabel.
<?php ob_start(); ?>line1 line2 line3<?php $xml = ob_get_clean();
Harap dicatat bahwa buffering keluaran mungkin bukan solusi terbaik dalam hal kinerja dan kebersihan kode untuk kasus yang tepat ini tetapi sebaiknya tinggalkan di sini untuk referensi.
sumber
Mungkin mencoba ". =" Indead of "="?
$xml="l"; $xml.="vv";
akan memberi Anda "lvv";
sumber
Untuk meletakkan string "l" dan "vv" pada baris terpisah dalam kode saja:
$xml = "l"; $xml .= "vv" echo $xml;
Dalam contoh ini Anda mengatakan untuk menambahkan
.=
string ke akhir versi sebelumnya dari variabel string itu. Ingatlah bahwa = hanyalah operator penugasan, jadi dalam kode asli Anda, Anda menetapkan nilai string baru untuk variabel.Untuk meletakkan string "l" dan "vv" pada baris terpisah di echo saja:
$xml = "l\nvv" echo $xml;
Anda tidak memerlukan banyak string dalam hal ini, karena karakter baris baru
\n
akan mengurusnya untuk Anda.Untuk meletakkan string "l" dan "vv" pada baris terpisah dalam kode dan saat menggema:
$xml = "l"; $xml .= "\nvv" echo $xml;
sumber
$xml="l\rn"; $xml.="vv"; echo $xml;
Tetapi Anda harus benar-benar melihat http://us3.php.net/simplexml
sumber