ホームページ > バックエンド開発 > PHPの問題 > エディターは区切り文字を学習するのに役立ちます。nowdoc と heredoc の間に違いはありますか?

エディターは区切り文字を学習するのに役立ちます。nowdoc と heredoc の間に違いはありますか?

醉折花枝作酒筹
リリース: 2023-03-11 21:00:01
オリジナル
2298 人が閲覧しました

前回の記事では、PHP の EOF について説明しました。必要な場合は、「ヒアドキュメントとは何ですか?PHP で何ができるのですか?」を参照してください。 》。今回はnowdocとheredocの違いについて紹介しますので、必要に応じて参考にしてください。

前項で編集者がヒアドキュメントを皆さんに紹介しましたが、nowdocは紹介されていなかったようです。しかし、そうではなく、編集者は nowdoc を全員に紹介しましたが、編集者はこの用語を全員に伝えたわけではありません。しかし、nowdoc を見てみましょう。

まず小さな栗を見てみましょう。

<?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;
?>
ログイン後にコピー

このままではわかりにくいので、前回の記事の例をあげて比較してみましょう。

<?php
$name="runoob";
$a= <<<EOF
        "abc"$name
        "123"
EOF;
// 结束需要独立一行且前后不能空格
echo $a;
?>
ログイン後にコピー

これら 2 つの例を見て、最大の違いは単語 EOF であることがわかります。nowdoc では一重引用符が必要ですが、ヒアドキュメントでは引用符で囲む必要はありません。

これが直感的に感じられる違いですが、nowdocとheredocの違いについて詳しくお話しましょう。

heredoc は <<< EOT 識別子を使用しますが、nowdoc は <<< 'EOT' 識別子を使用します。このうちnowdocはphp5.3から導入された新しい技術です。 Herdoc の構文が含まれていますが、内容がエスケープされたり解釈されたりすることはありません。コンテンツは何ですか。PHP に関連するコンテンツは解析されません。

ヒアドキュメントで PHP 変数を使用することをお勧めします。{$name->change()}回避するには中括弧で囲みます。多少の曖昧さ。そのまま出力したい場合は、伝説のエスケープ文字 <code>\ を使用できます。エスケープ文字自体は、エスケープ文字を使用して出力できます。つまり、この表現方法、中括弧などはすべて出力するにはエスケープする必要があります。

使いやすさを確保するために、エスケープを使用して Herdoc 構文を使用することをお勧めします。 nowdoc 構文は PHP5.3 で導入されたため、多くのクラウド ホスティング環境ではサポートされていない可能性があり、使用できません。

最後に、herdoc は php4.0 から導入されたものですが、nowdoc 構文にはバージョン 5.3 が必要であることを強調したいと思います。 herdeoc には nowdoc の機能が含まれているため、herdeoc を使用することをお勧めします。

簡単に言えば:

1. Heredoc は動的ですが、nowdoc は静的です

2. Herdoc は複数行の二重引用符に似ており、NewDoc は複数行の二重引用符に似ています。行一重引用符 引用符

3. heredoc は大きな文字列を処理するための一般的なソリューションであり、nowdoc は PHP によって実装された「効率的な」静的バージョンであり、「Heredoc」の動的実装の効率を補います。 」。

以上です。他に知りたいことがある場合は、ここをクリックしてください。 → →phpビデオチュートリアル

以上がエディターは区切り文字を学習するのに役立ちます。nowdoc と heredoc の間に違いはありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
php
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート