PHPエラー制御演算子@またはdie()のインスタンス使用方法の詳細説明

伊谢尔伦
リリース: 2023-03-10 22:38:01
オリジナル
7327 人が閲覧しました

PHP はエラー制御演算子 @ をサポートしています。 PHP 式の前に配置すると、式によって生成されるエラー メッセージは無視されます。

set_error_handler() でカスタム エラー処理関数を設定した場合でも、その関数は呼び出されますが、このエラー処理関数は error_reporting() を呼び出すことができます (呼び出す必要があります)。この関数は、エラー ステートメント 0 の前に @ がある場合に戻ります。 。

track_errors 機能がアクティブ化されている場合、式によって生成されたエラー メッセージは変数 $php_errormsg に保存されます。この変数はエラーが発生するたびに上書きされるため、使用する場合はできるだけ早く確認してください。

php エラー無視記号 @

@ は、PHP 言語のエラー無視文字です。PHP 式の前に配置すると、その式によって生成される可能性のあるエラー メッセージは無視されます。例:

@include("file.php");
ログイン後にコピー

@ 演算子は式に対してのみ有効であることに注意してください。どこかから値を取得できる場合は、その値の前に @ 演算子を追加できることがわかります。

たとえば、変数、関数の前に置き、呼び出し、定数などを含めることができます。

関数やクラスの定義の前に配置したり、if や foreach などの条件構造で使用したりすることはできません。

さらに、@ は通常、 or die() と一緒に使用されます。例:

(@include("file.php"))
 OR die("Could not find file.php!");
ログイン後にコピー

上記のステートメントは、file.php のインクルードが失敗した場合 (たとえば、file.php ファイルが存在しない場合) を意味します。 「file.php が見つかりません!」と表示され、プログラムの実行が直ちに停止されます。

@ 文字が追加されていない場合、 include("file.php") がエラーを返すと、Web ページに次のように出力されます:

Warning: include(file.php) [function.include]: failed to open stream: No such file or directory
Warning: include() [function.include]: Failed opening 'file.php' for inclusion (include_path='.;C:\php5\pear')
ログイン後にコピー

or die() の使用法

die() 関数誰もが使用する必要があります。これについてはよく知っていますが、 や die() などのメソッドを作成することによって生じる効果の一部については知らないかもしれません。

まず die() を理解してください。

dieの定義と使用法

die()関数はメッセージを出力し、現在のスクリプトを終了します。

構文

die(status)
ログイン後にコピー

ステータスが必要です。スクリプトを終了する前に書き込まれるメッセージまたはステータス番号を指定します。ステータス番号は出力に書き込まれません。

status が文字列の場合、関数は終了する前に文字列を出力します。

status が整数の場合、この値が終了ステータスとして使用されます。終了ステータスの値は 0 ~ 254 です。終了ステータス 255 は PHP によって予約されており、使用されません。ステータス 0 はプログラムを正常に終了するために使用されます。

注: PHP のバージョン番号が 4.2.0 以上の場合、status が整数の場合、このパラメーターは出力されません。

php または die() ステートメント

次のようなステートメントをよく見かけます:

$file = fopen($filename, 'r') or die("抱歉,无法打开: $filename");
ログイン後にコピー

or は、ここでは次のように理解されます。PHP ではデータ型が区別されないため、 $file は int または bool のいずれかになります。ステートメントはエラーを報告しません。しかし、友人の中には処理プロセスを理解していない人もいるかもしれません。

実際、ほとんどの言語では、bool や bool のようなステートメントでは、前の値が true の場合、次の値は判定されません。ここでも同じことが当てはまり、fopen 関数が正しく実行されると、0 より大きい int 値 (実際には「true」) が返され、後続のステートメントは実行されません。

fopen関数が実行に失敗した場合はfalseを返し、次の式がtrueかどうかを判定します。

die()の実行後、何が返されても、プログラムは実行を停止し、指定されたエラーメッセージが表示され、デバッグの目的は達成されます。 それだけです。

エラー管理で一般的に使用される 2 つの関数は、die() と exit() です (厳密に言えば、これらは関数ではなく言語構造体ですが、それを気にする人はいません)。

スクリプト内で die() と exit() が呼び出されると、スクリプト全体が終了します。

これらはすべて、スクリプトの実行の継続を妨げ、特定の重要な操作 (データベース接続の確立など) が発生しないようにするために使用できます。ブラウザに表示される文字列を die() および exit() に渡すこともできます。

通常、OR 条件文で die() と exit() が使用されているのがわかります。

たとえば

include('config.inc.php') OR die ('Could not open the file. ');
ログイン後にコピー

このようなコード行をインクルードした後、PHP が設定ファイルをインクルードできない場合は、die() ステートメントが実行され、「ファイルを開けませんでした」というメッセージが出力されます。

!defined('CURSCRIPT') && define('CURSCRIPT', ");//意思是如果没定义CURSCRIPT常量,则定义CURSCRIPT为空.
ログイン後にコピー

これは、カスタム エラー ハンドラーを使用せずにエラーを処理する (ただし、オーバーハンドリングする可能性がある) ショートカット方法であるため、本全体と PHP マニュアルでこれのバリエーションが見られます。

実際、die と exit は同等であり、現在のスクリプトを終了するために使用され、プログラムのデバッグ時によく使用されます。

以上がPHPエラー制御演算子@またはdie()のインスタンス使用方法の詳細説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート