ホームページ  >  記事  >  バックエンド開発  >  PHPの終了タグ「?>」が書けない状況は何ですか?

PHPの終了タグ「?>」が書けない状況は何ですか?

WBOY
WBOYオリジナル
2016-07-13 10:19:511230ブラウズ

どのような状況でPHPの終了タグ「?>」が書けずphp

が書けないのか

一部の PHP プロジェクトでは、一部の PHP ファイルのコードに開始タグのみがあり、終了タグがないことがよくあります。では、どのような状況ではこの終了タグを記述できず、どのような状況では記述しなければならないのでしょうか?

まず 2 つの例を見てみましょう:

次のコードは正常に動作します:

リーリー

次のコードはエラーを報告します:

リーリー

原因分析:
前者は純粋な php コードであるため、終了タグを記述する必要はありません。また、終了タグを記述することはお勧めできません。後者は php コードに加えて html コードを含むため、終了タグを記述する必要があります。

では、なぜ前者に終了タグを書くことが推奨されないのでしょうか?
phpの終了タグを書かないとデフォルトでは開始タグ以降のコードになるので、他のコードがあるとエラーが報告されます。 php は php タグ内のスクリプトのみを実行できます。スペース、キャリッジ リターン、タブ記号など、目に見えないスクリプト外の文字はすべて出力コンテンツとしてクライアントに応答されるため、予期せぬ事態が発生する可能性があります 。たとえば、ファイル内で header 関数が使用されており、このファイルに別のファイルも含まれており、インクルードされたファイルの PHP タグの外側に null 文字がある場合、「ヘッダーはすでに送信されました」エラーが報告されます。一部のWebページのソースコードを見ると、先頭にスペースや改行が多く見られますが、これはこれが原因です。

解決策の提案:

ライブラリ ファイル、または一部のクラス ファイルなど。純粋な PHP コードのみを含むファイルに終了タグを追加することはお勧めできません

この記事で説明されている内容は、皆様の PHP プログラム設計にとって一定の参考になると思います。

PHP が終了タグのターミネータを書き込まない場合があるのはなぜですか?

いくつかの情報を探した結果、PHP 終了タグに関するみんなのまとめは次のとおりです: 利点: これが他のプログラムに含まれている場合、この終了文字がなければ、非常に多くの問題を軽減できます。たとえば、header、setcookie、session_start などです。出力がある前にアクションを実行することはできません。誤って ? の後に非表示の文字 (余分なスペース、改行) を追加してページの表示を損なう場合、ヘッダーが送信済みであることを示すエラーが報告されます。この問題があります。また、カーソルを末尾に直接移動してプログラミングを続けることもできます。悪い点: Dreamweaver の表示モードでは、混乱します。 PHP 終了タグに関する公式の説明は次のとおりです: PHP 終了タグ? PHP の PHP アナライザーはオプションです。ただし、終了タグが使用されている場合、開発者、ユーザー、または FTP アプリケーションによって終了タグの後にスペースが挿入されると、冗長な出力、PHP エラー、表示できない後続の出力、および空白ページが発生する可能性があります。したがって、すべての PHP ファイルでは、PHP 終了タグを省略し、これがファイルの最後であることを示すコメントを挿入し、アプリケーションに関連してファイルを配置する必要があります。これは、ファイルが終了し、削除されていないことを確認するのに役立ちます。不適切:

一部の人の PHP ファイルが PHP 言語の終了タグを記述しないのはなぜですか - 技術 Q&A

ファイルが個別に実行されない場合、つまり他のファイルにインクルードされる必要がある場合は、終了タグを記述しないことをお勧めします。推奨されませんが、独自の特別な意味があります

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/871104.html技術記事 PHP の終了タグ「?」を記述できず、php を記述できないのはどのような状況ですか?
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。