ホームページ  >  記事  >  バックエンド開発  >  PHP 原則の深い理解: エラー抑制と埋め込み HTML 分析_PHP チュートリアル

PHP 原則の深い理解: エラー抑制と埋め込み HTML 分析_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-21 15:30:19817ブラウズ

PHP にはエラー サプレッサー '@' が用意されています。どのようにしてエラー出力を防ぐことができますか?
これは、過去 2 日間で一部のネットユーザーが指摘した一般的な問題です
PHP ファイルに埋め込まれた HTML を処理する方法
PHP では、構文解析プロセス中にタグの外側のすべての文字が T_INLINE_HTML トークンに変換されます。
つまり、次のようになります。

コードをコピーします コードは次のとおりです:
while($con) {
?>
larence
}
?> OPLINE: T_ECHO、オペランドは "laruence";
結果に関する限り、上記のコードは実際には次の結果と同じです:


コードをコピーします

コードは次のとおりです:
while($con) { echo "laruence";
}
?>


ただし、注意すべき点は、字句解析プロセス中に、次のようになります。例:


コードをコピー

コードは次のとおりです:
if(1) { ?> laruence laruence laruence laruence laruence laruenceラルエンス ラルエンス ラルエンス ラルエンス ラルエンス ラルエンス ラルエンス ラルエンス ラルエンス ラルエンス ラルエンス ラルエンス ラルエンス ラルエンス ラルエンス ラルエンス ラルエンス ラルエンス ラルエンス ラルエンス ラルエンス ラルエンス ラルエンス ラルエンス ラルエンス ラルエンス ラルエンス ラルエンス
}
?> ;


上記のコードでは、タグの外側に 531 文字 (スペースとキャリッジ リターンを含む) があり、これは 2 つの T_INLINE_HTML 出力に分割されます。エラー抑制機能、どのような方法で? ?>


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


コードをコピーします

コードは次のとおりです:
1 。 error_reporting value and set error_reporting(0); // エラー出力をオフにします2. 以前に保存した error_reporting 値を復元します
つまり、上記のコードは次のコードと似ています:



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

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

http://www.bkjia.com/PHPjc/323222.html

www.bkjia.com

tru​​e
http://www.bkjia.com/PHPjc/323222.html技術記事 PHP にはエラー サプレッサー '@' が用意されています。どのようにしてエラー出力を防ぐことができますか?
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。