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

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

WBOY
WBOYオリジナル
2016-06-13 12:10:261104ブラウズ

PHP にはエラー抑制機能「@」が用意されています。どのようにしてエラー出力を防ぐことができますか?
これは、ここ 2 日間で一部のネットユーザーが指摘した一般的な問題です。今日はその概要を説明します。
PHP ファイルに埋め込まれた HTML を処理する方法
PHP では、タグの外側のすべての文字は字句解析プロセス中に T_INLINE_HTML トークンに変換され、構文解析中に T_INLINE_HTML トークンに変換されます。 . 、すべての T_INLIE_HTML には ZEND_ECHO 出力が割り当てられます。

コードをコピーします コードは次のとおりです。 > while($con) {

?>
ラルエンス
}
?>
OPLINE が生成されます: T_ECHO、オペランドは "laruence";
結果に関する限り、上記のコードは実際には次の結果と同じです:


コードをコピー

コードは次のとおりです。

while($con) { echo "laruence"; >}

?>



ただし、次のような PHP タグの外側の文字は字句解析プロセス中に 400 文字単位に分割されることに注意してください。 🎜>

コードをコピー

コードは次のとおりです。



if(1) { ?> 🎜>ラルエンス ラルエンス ラルエンス ラルエンス ラルエンス ラルエンス ラルエンス ラルエンス ラルエンス ラルエンス ラルエンス ラルエンス ラルエンス ラルエンス ラルエンス ラルエンス ラルエンス ラルエンス ラルエンス ラルエンス ラルエンス ラルエンス ラルエンス ラルエンス ラルエンス ラルエンスラルエンス ラルエンス ラルエンス ラルエンス ラルエンス ラルエンス ラルエンス } ?>


上記のコードでは、ラベルの外側に 531 文字 (スペースと復帰を含む) があり、これらは次のように分割されます。 2 つの T_INLINE_HTML 出力。
エラー サプレッサー
PHP では、エラー プロンプトを表示しないようにエラー サプレッサーを使用できることはわかっています。
構文解析のプロセスでは、次の場合にどのような方法が使用されますか? 🎜>

コードをコピーします

コードは次のとおりです:



@include('file'); >

は、include ステートメントの前後に 2 つの Opline (操作) を挿入します: Copy code

コードは次のとおりです。


1. 現在の error_reporting 値を保存し、error_reporting(0) を設定します。
2. 以前に保存した error_reporting 値を復元します。


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

コードをコピーします コードは次のとおりです:


$old = error_reporting(0);
include('file');
error_reporting($old);



また、「適用する必要がありますか? エラー抑制はどうですか?」という質問に対して、私の個人的な提案は、このステートメントが間違っていて、それがあなたにほとんど影響を与えない場合は、エラーが何であるかは気にせず、処理する追加のロジックを用意する必要はないということです。この種のエラーの場合は、エラー抑制を使用できます。それ以外の場合は、追加のロジックを使用してエラーを判断してください。

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