Dalam artikel sebelum ini, kami belajar tentang EOF dalam PHP Jika anda memerlukannya, sila baca "Apa itu heredoc? Apa yang boleh dilakukan untuk PHP? 》. Kali ini kami akan memperkenalkan kepada anda perbezaan antara nowdoc dan heredoc Anda boleh merujuknya jika perlu.
Di bahagian sebelumnya, editor memperkenalkan heredoc kepada semua orang, tetapi nampaknya nowdoc tidak diperkenalkan. Tetapi ini tidak berlaku. Editor juga memperkenalkan nowdoc kepada semua orang, tetapi editor tidak memberitahu semua orang istilah itu. Tetapi mari kita lihat pada nowdoc.
Mula-mula mari kita lihat sedikit berangan.
<?php $str = <<<'EOD' Example of string spanning multiple lines using nowdoc syntax. EOD; /* 含有变量的更复杂的示例 */ class foo { public $foo; public $bar; function foo() { $this->foo = 'Foo'; $this->bar = array('Bar1', 'Bar2', 'Bar3'); } } $foo = new foo(); $name = 'MyName'; echo <<<'EOT' My name is "$name". I am printing some $foo->foo. Now, I am printing some {$foo->bar[1]}. This should not print a capital 'A': x41 EOT; ?>
Ini tidak jelas dengan cara ini. Mari kita ambil contoh daripada artikel sebelumnya dan bandingkannya.
<?php $name="runoob"; $a= <<<EOF "abc"$name "123" EOF; // 结束需要独立一行且前后不能空格 echo $a; ?>
Mari lihat dua contoh ini dan ketahui bahawa perbezaan terbesar ialah perkataan EOF tidak diperlukan dalam nowdoc, ia memerlukan petikan tunggal, tetapi dalam heredoc, ia tidak diperlukan tanda petikan.
Inilah perbezaan yang kami rasai secara intuitif. Mari kita bincangkan secara terperinci perbezaan antara nowdoc dan heredoc.
heredoc menggunakan <<< pengecam EOT, manakala nowdoc menggunakan pengecam <<< Antaranya, nowdoc ialah teknologi baharu yang diperkenalkan dalam php5.3. Ia mengandungi sintaks herdoc, tetapi kandungannya tidak pernah terlepas atau ditafsirkan. Apakah kandungan itu, ia tidak akan menghuraikan kandungan yang berkaitan dengan PHP
Pembolehubah PHP dalam heredoc disyorkan untuk menggunakan {$name->change()} yang disertakan dalam kurungan kerinting untuk mengelakkan beberapa kesamaran. Jika anda ingin mengeluarkannya sebagaimana adanya, anda boleh menggunakan watak melarikan diri yang legenda <code>
Watak melarikan diri itu sendiri boleh dikeluarkan menggunakan watak melarikan diri Maksudnya, kaedah perwakilan, pendakap, dll. semuanya perlu melarikan diri dan keluaran.
Untuk memastikan kebolehgunaan, disyorkan untuk menggunakan sintaks herdoc dengan escape. Memandangkan sintaks nowdoc diperkenalkan dalam PHP5.3, banyak persekitaran pengehosan awan mungkin tidak menyokongnya, menjadikannya mustahil untuk menggunakannya.
Akhir sekali, saya ingin menekankan bahawa herdoc telah diperkenalkan daripada php4.0, manakala sintaks nowdoc memerlukan versi 5.3. Kerana herdeoc mengandungi fungsi nowdoc, saya cadangkan menggunakan herdeoc adalah lebih baik.
Ringkasnya:
1 Heredoc adalah dinamik, manakala nowdoc adalah statik
2 Herdoc serupa dengan petikan berbilang baris dan NewDoc adalah serupa dengan berbilang-. petikan tunggal baris.
3. heredoc ialah penyelesaian umum untuk memproses rentetan besar, dan nowdoc ialah versi statik "cekap" yang dilaksanakan dalam PHP, yang menggantikan kecekapan pelaksanaan dinamik "Heredoc" .
Itu sahaja jika anda ingin mengetahui perkara lain, anda boleh klik ini. → →tutorial video php
Atas ialah kandungan terperinci Editor akan membantu anda mempelajari pembatas Adakah terdapat sebarang perbezaan antara nowdoc dan heredoc?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!