Editor akan membantu anda mempelajari pembatas Adakah terdapat sebarang perbezaan antara nowdoc dan heredoc?

醉折花枝作酒筹
Lepaskan: 2023-03-11 21:00:01
asal
2262 orang telah melayarinya

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 = <<<&#39;EOD&#39;
Example of string
spanning multiple lines
using nowdoc syntax.
EOD;
/* 含有变量的更复杂的示例 */
class foo
{
    public $foo;
    public $bar;
    function foo()
    {
        $this->foo = &#39;Foo&#39;;
        $this->bar = array(&#39;Bar1&#39;, &#39;Bar2&#39;, &#39;Bar3&#39;);
    }
}
$foo = new foo();
$name = &#39;MyName&#39;;
echo <<<&#39;EOT&#39;
My name is "$name". I am printing some $foo->foo.
Now, I am printing some {$foo->bar[1]}.
This should not print a capital &#39;A&#39;: x41
EOT;
?>
Salin selepas log masuk

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;
?>
Salin selepas log masuk

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!

Label berkaitan:
php
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!