PHPのnowdocとheredocの違いは何ですか?

怪我咯
リリース: 2023-03-13 16:14:01
オリジナル
1610 人が閲覧しました

ヒアドキュメント構造は、二重引用符を使用しない二重引用符で囲まれた文字列に似ています。つまり、ヒアドキュメント構造内で一重引用符をエスケープする必要はありません。構造内の変数は置換されますが、ヒアドキュメント構造に複雑な変数が含まれる場合は注意してください。コンテンツをフォーマットして出力する場合に便利です。具体的には、次のような特徴があります: 1. 開始タグと終了タグは同じ文字列を使用し、通常は大文字で記述されます。

2. 開始タグの後にスペースや余分な文字を含めないでください。

3. 終了タグはインデントやスペースを入れずに先頭に記述し、終了タグの最後にはセミコロンを付ける必要があります。

4. 開始タグと終了タグの間の変数は正常に解析できますが、関数は解析できません。ヒアドキュメントでは、変数をコネクタまたは で結合する必要はありません。

nowdoc 構造は PHP 5.3.0 以降のバージョンで追加されました。その使用方法はヒアドキュメントと同じです。違いは、Nowdoc 構造が単一引用符文字列に似ていることです。 nowdoc では解析操作は実行されません。この構造は、
特殊文字

をエスケープせずに、PHP コードやその他の大きなテキスト ブロックを埋め込むのに最適です。解析する必要のないテキストの大部分を宣言するために使用される SGML 構造と同様に、nowdoc 構造にも同じ特性があります。
nowdoc 構造でも、ヒアドキュメント構造と同じタグ <<< が使用されますが、次の識別子は一重引用符で囲む必要があります (例: <<<'EOT')。

heredoc は <<< EOT 識別子を使用しますが、nowdoc は <<< 'EOT' 識別子を使用します。ここで、nowdoc は PHP5.3 で導入された新しいテクノロジーであり、 heredoc の構文が含まれています。コンテンツはいかなる方法でもエスケープされたり解釈されたりすることはありません。コンテンツはそのままの状態であり、PHP 関連のコンテンツは解析されません。
ヒアドキュメント内の PHP 変数

{$name->change()} を使用することをお勧めします。
をそのまま出力したい場合は、エスケープ文字自体をエスケープ文字、つまりこの表現方法や中括弧などを使って出力することができます。これらには出力をエスケープする必要があります。 確実に使用できるようにするには、エスケープも含まれる heredoc 構文を使用することをお勧めします。nowdoc 構文は PHP5.3 で導入されたため、多くのクラウド ホスティング環境ではサポートされていない可能性があり、問題が発生します。 最後に、ヒアドキュメントはPHP 4.0から導入されており、nowdoc構文にはバージョン5.3が必要です。ヒアドキュメントにはnowdocの機能が含まれているため、個人的にはヒアドキュメントを使用することをお勧めします。
簡単に言えば:
1. Heredoc は動的、nowdoc は
静的

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

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

以上がPHPのnowdocとheredocの違いは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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