ホームページ >php教程 >php手册 >PHP の原則、エラー抑制、埋め込み HTML についての深い理解

PHP の原則、エラー抑制、埋め込み HTML についての深い理解

WBOY
WBOYオリジナル
2016-06-21 08:52:421129ブラウズ

PHP は埋め込み HTML をサポートしていますが、PHP ファイル内の PHP タグの外側の HTML は、

を直接出力する場合と何か違いますか?

PHP にはエラー抑制機能「@」が用意されています。どのような場合に使用すればよいですか?

これは、過去 2 日間に一部のネットユーザーから寄せられた一般的な質問です。今後の参考のために、今日は一般的に答えておきます。

PHP ファイルに埋め込まれた HTML を処理する方法

PHP では、構文解析中にタグの外側のすべての文字が T_INLINE_HTML トークンに変換され、すべての T_INLIE_HTML に ZEND_ECHO 出力が割り当てられます。

言い換えれば:

    while($con) {
  1. ?>
  2. ラルエンス
  3. }
  4. ?>
  5. OPLINE が生成されます: T_ECHO、オペランドは "laruence";
結果に関して言えば、上記のコードは実際には次の結果と同じです:

    while($con) {
  1. echo "ラルエンス";
  2. }
  3. ?>
  4. ただし、注意すべき点が 1 つあります。次のような PHP タグの外側の文字は、字句解析プロセス中に 400 文字単位に分割されることです。

if(1) {
  1. ?>
  2. ラルーエンス ラルエンス ラルエンス ラルエンス ラルエンス ラルエンス ラルエンス ラルエンス ラルエンス ラルエンス ラルエンス ラルエンス ラルエンス ラルエンス ラルエンス ラルエンス ラルエンス ラルエンス ラルエンス ラルエンス ラルエンス ラルエンス ラルエンス ラルエンス ラルエンスラルエンス ラルエンス ラルエンス ラルエンス ラルエンス
  3. }
  4. ?>
  5. 上記のコードでは、タグの外側に 531 文字 (スペースと復帰を含む) があり、2 つの T_INLINE_HTML 出力に分割されます。
  6. エラーサプレッサー

PHP では、エラー サプレッサーを使用してエラー プロンプトを表示しないようにできることはわかっていますが、どのように行うのでしょうか?

文法分析の過程で、以下について:

@include('file');

    ?>
  1. include ステートメントの前後に 2 つの Opline (操作) が挿入されます。これら 2 つの操作は個別に実行されます。
  2. 1. 現在の error_reporting 値を保存し、error_reporting(0) を設定します。
  3. 2. 以前に保存した error_reporting 値を復元します。

つまり、上記のコードは実際には次のコードに似ています:

$old = error_reporting(0);

include('file');

error_reporting($old);
  1. さらに、余談になりますが、「エラー抑制はどのような場合に適用すべきですか?」ということですが、私の個人的な提案は、このステートメントが間違っていても、あなたにはほとんど影響がなく、エラーが何であるかを気にする必要はありません。この種のエラーを処理するための追加ロジックは用意されません。その場合は、エラー抑制を使用できます。それ以外の場合は、追加ロジックを使用してエラーを特定してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。