前回の記事では、PHP の EOF について説明しました。必要な場合は、「ヒアドキュメントとは何ですか?PHP で何ができるのですか?」を参照してください。 》。今回はnowdocとheredocの違いについて紹介しますので、必要に応じて参考にしてください。
前項で編集者がヒアドキュメントを皆さんに紹介しましたが、nowdocは紹介されていなかったようです。しかし、そうではなく、編集者は nowdoc を全員に紹介しましたが、編集者はこの用語を全員に伝えたわけではありません。しかし、nowdoc を見てみましょう。
まず小さな栗を見てみましょう。
<?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; ?>
このままではわかりにくいので、前回の記事の例をあげて比較してみましょう。
<?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 サイトの他の関連記事を参照してください。