PHP エラー処理メカニズム、PHP 処理メカニズム_PHP チュートリアル
PHP エラー処理メカニズム、PHP 処理メカニズム
日々のプロジェクト開発プロセスでは、予期しない異常なエラーが常に発生します。これを比較的適切に処理しないと、プログラムは非常に見栄えの悪いものになります。専門的でない場合は、他の人がシステムを攻撃するための有効な情報になる可能性があります。現時点でエラー メッセージがない場合は、コードを確認するだけです。プロジェクトに何百行ものエラーがあることは、私たちにとって非常に恐ろしいことであることを最初から認識しておく必要があります。プロジェクト開発プロセス中に例外やエラーを迅速かつ正確に特定するにはどうすればよいでしょうか。この記事はエラーや例外を自分で処理していますので、皆さんと共有してお互いの学びを兼ねてメモとして残しておきたいと思います。
システムエラーハンドラー:
PHP の通常の状況では、エラーは正常に出力されますが、一部のフレームワークでは、フレームワーク自体が独自の処理メカニズムを持っているか、コード内 (通常はこれらの関数) で処理される可能性があります。設定:
1.error_reporting(); PHP のエラー報告レベルを設定し、現在のレベルを返します
エラーレポート(レポートレベル)
パラメータレベルが指定されていない場合は、現在のエラーレベルが返されます。レベルに使用できる値は次のとおりです:
価値 |
定数 |
説明 |
|
1 |
E_エラー |
致命的なランタイムエラー。このエラーは再利用できません。スクリプトの実行が中断されました。 |
|
2 |
E_警告 |
致命的ではない実行時警告。スクリプトの実行は中断されません。 |
|
4 |
E_PARSE |
コンパイル時間分析エラー。解析エラーはアナライザーによってのみ生成されるべきです |
|
8 |
E_NOTICE |
実行時通知。見つかったスクリプトはバグである可能性がありますが、スクリプトの実行時に通常どおりに発生する可能性もあります |
|
16 |
E_CORE_ERROR |
PHP起動時の致命的なエラー。これは PHP のコアの E_ERROR のようなものです |
|
32
|
E_CORE_WARNING
|
PHP 起動時の警告。これは、PHPのコアのE_WARNINGのようなものです |
|
E_COMPILE_ERROR |
致命的なコンパイル時エラー。これは、Zend スクリプト エンジンを渡して E_ERROR を生成するのと同じです |
||
128 |
E_COMPILE_WARNING |
致命的ではないコンパイル時の警告。 Zendスクリプトエンジン経由でE_WARNING を生成するようなものです |
|
256 |
E_USER_エラー |
ユーザーが生成した致命的なエラー。PHP 関数 trigger_error() を使用してプログラマが設定したエラーに類似しています。 512 |
|
| 致命的ではないユーザー生成の警告。プログラマーが PHP の 関数を使用して設定するものに似ています。
|
1024 E_USER_NOTICE |
ユーザー生成の通知。PHP 関数を使用してプログラマが設定した通知に似ています。 2048 | E_STRICT
実行時通知。 PHP |
コードの相互運用性と互換性を高めるためのコードへの変更案 |
4096 | E_RECOVERABLE_ERROR|
キャッチ可能な致命的なエラー。 E_ERROR |
に似ていますが、ユーザー定義のハンドラーによってキャッチできます(set_error_handler() | を参照)
|
|
8191 |
E_ALL |
レベル E_STRICT を除くすべてのエラーと警告 (PHP6.0 では、E_STRICT は E_ALL の一部になります) |
ここで、$level が 0 の場合、エラー出力がオフになる、つまりエラーが出力されないことに注意してください。
2.set_error_handler()
定義と使用法
set_error_handler() 関数は、ユーザー定義のエラー処理関数を設定します。
この関数は、実行時にユーザー独自のエラー処理メソッドを作成するために使用されます。
この関数は古いエラー ハンドラーを返すか、失敗した場合は null を返します。
文法
set_error_handler(error_function,error_types)
パラメータ |
説明 |
エラー関数 |
必須。エラーが発生したときに実行する関数を指定します。 |
エラーの種類 |
オプション。ユーザー定義エラーをどのエラー報告レベルで表示するかを指定します。デフォルトは「E_ALL」です。 |
ヒント: この関数を使用すると、標準の PHP エラー処理関数は完全にバイパスされ、ユーザー定義のエラー ハンドラーは必要に応じてスクリプトを終了 (die()) する必要があります。
注: スクリプトの実行前にエラーが発生した場合、その時点ではカスタム プログラムが登録されていないため、カスタム エラー ハンドラーは使用されません。テストコードは次のとおりです:
リーリー
//上記のケースから、my_error メソッドを登録すると、システムは元のエラー処理 error_fuction() メソッドを自動的に上書きすることがわかります
上記のプログラムを実行した結果:
カスタムエラートリガー
定義と使用法trigger_error() 関数はユーザー定義のエラー メッセージを作成します。
trigger_error() は、ユーザーが指定した条件下でエラー メッセージをトリガーするために使用されます。これは、組み込みエラー ハンドラー、または set_error_handler() 関数で作成されたユーザー定義関数とともに使用されます。
不正なエラータイプが指定された場合、この関数は false を返し、それ以外の場合は true を返します。
文法
trigger_error(error_message,error_types)
パラメータ
|
説明
|
エラーメッセージ
|
必須。エラーメッセージを指定します。長さ制限は 1024 文字です。 |
エラーの種類
|
可选。规定错误消息的错误类型。 可能的值:
|
/** * * @param type $level * @param type $msg */ function my_error($level, $msg) { switch ($level) { case E_USER_ERROR: echo "ERROR:<br/>"; break; case E_USER_WARNING: echo "WARNING:<br/>"; break; case E_USER_NOTICE: echo "NOTICE:<br/>"; break; default: break; } echo "错误编号:" . $level . " <br/>"; echo "错误信息:" . $msg; } //注册错误处理器 set_error_handler('my_error'); if (89 > 8) { //调用错误触发器 trigger_error('这是错误啊', E_USER_WARNING); }
运行结果如下:
WARNING:
错误编号:512
错误信息:这是错误啊
以上所述就是本文的全部内容了,希望大家能够喜欢。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









PHP 8.4 では、いくつかの新機能、セキュリティの改善、パフォーマンスの改善が行われ、かなりの量の機能の非推奨と削除が行われています。 このガイドでは、Ubuntu、Debian、またはその派生版に PHP 8.4 をインストールする方法、または PHP 8.4 にアップグレードする方法について説明します。

Visual Studio Code (VS Code とも呼ばれる) は、すべての主要なオペレーティング システムで利用できる無料のソース コード エディター (統合開発環境 (IDE)) です。 多くのプログラミング言語の拡張機能の大規模なコレクションを備えた VS Code は、

あなたが経験豊富な PHP 開発者であれば、すでにそこにいて、すでにそれを行っていると感じているかもしれません。あなたは、運用を達成するために、かなりの数のアプリケーションを開発し、数百万行のコードをデバッグし、大量のスクリプトを微調整してきました。

このチュートリアルでは、PHPを使用してXMLドキュメントを効率的に処理する方法を示しています。 XML(拡張可能なマークアップ言語)は、人間の読みやすさとマシン解析の両方に合わせて設計された多用途のテキストベースのマークアップ言語です。一般的にデータストレージに使用されます

JWTは、JSONに基づくオープン標準であり、主にアイデンティティ認証と情報交換のために、当事者間で情報を安全に送信するために使用されます。 1。JWTは、ヘッダー、ペイロード、署名の3つの部分で構成されています。 2。JWTの実用的な原則には、JWTの生成、JWTの検証、ペイロードの解析という3つのステップが含まれます。 3. PHPでの認証にJWTを使用する場合、JWTを生成および検証でき、ユーザーの役割と許可情報を高度な使用に含めることができます。 4.一般的なエラーには、署名検証障害、トークンの有効期限、およびペイロードが大きくなります。デバッグスキルには、デバッグツールの使用とロギングが含まれます。 5.パフォーマンスの最適化とベストプラクティスには、適切な署名アルゴリズムの使用、有効期間を合理的に設定することが含まれます。

文字列は、文字、数字、シンボルを含む一連の文字です。このチュートリアルでは、さまざまな方法を使用してPHPの特定の文字列内の母音の数を計算する方法を学びます。英語の母音は、a、e、i、o、u、そしてそれらは大文字または小文字である可能性があります。 母音とは何ですか? 母音は、特定の発音を表すアルファベットのある文字です。大文字と小文字など、英語には5つの母音があります。 a、e、i、o、u 例1 入力:string = "tutorialspoint" 出力:6 説明する 文字列「TutorialSpoint」の母音は、u、o、i、a、o、iです。合計で6元があります

静的結合(静的::) PHPで後期静的結合(LSB)を実装し、クラスを定義するのではなく、静的コンテキストで呼び出しクラスを参照できるようにします。 1)解析プロセスは実行時に実行されます。2)継承関係のコールクラスを検索します。3)パフォーマンスオーバーヘッドをもたらす可能性があります。

PHPの魔法の方法は何ですか? PHPの魔法の方法には次のものが含まれます。1。\ _ \ _コンストラクト、オブジェクトの初期化に使用されます。 2。\ _ \ _リソースのクリーンアップに使用される破壊。 3。\ _ \ _呼び出し、存在しないメソッド呼び出しを処理します。 4。\ _ \ _ get、dynamic属性アクセスを実装します。 5。\ _ \ _セット、動的属性設定を実装します。これらの方法は、特定の状況で自動的に呼び出され、コードの柔軟性と効率を向上させます。
