ホームページ バックエンド開発 PHPチュートリアル set_error_handle および at(@) シンボルに関連する問題

set_error_handle および at(@) シンボルに関連する問題

Jun 13, 2016 pm 01:41 PM
echo error fopen quot

set_error_handle と at(@) 記号の問題
問題は、set_error_handle を使用してシステム エラーや警告情報をログ ファイルに書き込むことです。
ただし、fopen などの一部の API では、ファイルが存在しない場合、自分で作成したエラー処理関数が実行されてしまいます。以前は、fopen の前に @ 記号が追加されており、このような問題は表示されませんでした。
set_error_handle を使用したい場合でも、@ 関数を削除できます。やり方は?
ありがとうございます


-----解決策---------
トライキャッチでキャッチ
------解決策------------------
set_error_handler を使用する場合、次の 2 つの点に注意するだけで済みます。1. set_error_handler は、php.ini で設定するか、関数を使用して設定します。 2. カスタマイズ エラー処理関数の戻り値が false の場合、PHP のデフォルトのエラー処理がトリガーされます。戻り値が true の場合、PHP のデフォルトのエラー処理はトリガーされず、煩わしいエラーは表示されません。

書き方については、こちらを参考にしてください。
function myErrorHandler($errno, $errstr, $errfile, $errline)
{
if (!(error_reporting() & $errno)) {
//このエラー タイプが error_reporting に含まれていない場合
return;
}

switch ($errno) {
case E_USER_ERROR:
echo "My ERRORn";
echo " ファイル $errfile の $errline 行で致命的なエラーが発生しました";
echo ", PHP " . PHP_VERSION . " (" . PHP_OS . " )
n";
echo "中止中...
n";
exit(1);
Break;

case E_USER_WARNING:
echo "私の警告 [$errno] $errstr
n";
Break;

case E_USER_NOTICE:
echo "< b>私の通知
[$errno] $errstr
n";
Break;
デフォルト:
echo "不明なエラーの種類: [$errno] $errstr
n";
Break;
}
// false を返すと PHP のデフォルトのエラー処理がトリガーされ、true を返すとカスタム関数のみを使用して処理します。
return true;
}
set_error_handler('myErrorHandler');
fopen('/tmp/foo', 'r');

------解決策------------------
テスト後、コード #5 は要求を満たすことができます! 実行後、
fopen('/tmp/foo', 'r');
が失敗した場合、
不明なエラー タイプ: [2] fopen(/tmp/foo) [function .fopen ]: ストリームを開けませんでした: そのようなファイルまたはディレクトリはありません

If
@fopen('/tmp/foo', 'r');
失敗すると、何も表示されません


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

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

PHP 致命的エラーの解決策: 未定義メソッド PDO::prepare() の呼び出し PHP 致命的エラーの解決策: 未定義メソッド PDO::prepare() の呼び出し Jun 22, 2023 pm 06:40 PM

PHP は、長い間使用されている人気のある Web 開発言語です。 PHP に統合された PDO (PHP Data Object) クラスは、Web アプリケーションの開発中にデータベースと対話する一般的な方法です。ただし、一部の PHP 開発者がよく遭遇する問題は、PDO クラスを使用してデータベースと対話するときに、次のようなエラーが表示されることです。

Vue アプリケーションで axios を使用しているときに「Uncaught (in Promise) Error: Request failed with status code 500」が発生した場合はどうすればよいですか? Vue アプリケーションで axios を使用しているときに「Uncaught (in Promise) Error: Request failed with status code 500」が発生した場合はどうすればよいですか? Jun 24, 2023 pm 05:33 PM

Vue アプリケーションで axios を使用するのは非常に一般的です。axios は、ブラウザーと Node.js で使用できる Promise ベースの HTTP クライアントです。開発プロセス中に、「Uncaught(inpromise)Error: Requestfailedwithstatuscode500」というエラー メッセージが表示されることがありますが、開発者にとって、このエラー メッセージは理解および解決が難しい場合があります。この記事ではこれについて説明します

C++ コードの「エラー: 不完全な型は許可されません」の問題を解決する C++ コードの「エラー: 不完全な型は許可されません」の問題を解決する Aug 26, 2023 pm 08:54 PM

C++ コードの「error:incompletetypeisnotallowed」問題を解決します。C++ プログラミング プロセス中に、コンパイル エラーが発生することがあります。一般的なエラーの 1 つは、「error:incompletetypeisnotallowed」です。このエラーは通常、不完全な型を操作することによって発生します。この記事では、このエラーの原因を説明し、いくつかの解決策を提供します。まず、私は

C++ コードの「エラー: 'datatype' の前に初期化子が必要です」問題を解決する C++ コードの「エラー: 'datatype' の前に初期化子が必要です」問題を解決する Aug 25, 2023 pm 01:24 PM

C++ コードの「error:expectedinitializerbefore'datatype'」問題を解決します。C++ プログラミングでは、コードを作成するときにコンパイル エラーが発生することがあります。一般的なエラーの 1 つは、「error:expectedinitializerbefore'datatype'」です。このエラーは通常、変数宣言または関数定義で発生し、プログラムが正しくコンパイルされなかったり、

0271: リアルタイムクロックエラーによりコンピュータの電源が入らない場合はどうすればよいですか? 0271: リアルタイムクロックエラーによりコンピュータの電源が入らない場合はどうすればよいですか? Mar 13, 2023 am 11:30 AM

起動できない「0271: リアルタイム クロック エラー」の解決策: 1. F1 キーを押し、表示されるインターフェイスでオプション バーを 3 番目の項目「日付/時刻」に移動します; 2. システム時刻を手動で現在の時刻に変更します。 1 回; 3. F10 キーを押し、ポップアップ ダイアログ ボックスで [はい] を選択します; 4. ノートブックを再度開いて、通常どおり起動します。

PHP 警告: fopen(): SSL 操作が file.php の X 行目で失敗した場合の解決方法 PHP 警告: fopen(): SSL 操作が file.php の X 行目で失敗した場合の解決方法 Aug 25, 2023 am 09:22 AM

PHPWarning:fopen():SSLoperationfailedinfile.phponlineX を解決する方法 PHP プログラミングでは、fopen 関数を使用してファイルまたは URL を開いて関連する操作を実行することがよくあります。ただし、fopen 関数を使用すると、Warning:fopen():SSLoperationfailedinfile.p のようなエラーが発生することがあります。

PHP 警告の解決方法: fopen(): ストリームを開けませんでした: 許可が拒否されました PHP 警告の解決方法: fopen(): ストリームを開けませんでした: 許可が拒否されました Aug 20, 2023 pm 01:45 PM

PHPWarning:fopen():failedtoopenstream:Permissiondenied を解決する方法 PHP プログラムの開発プロセスでは、PHPWarning:fopen():failedtoopenstream:Permissiondenied などのエラー メッセージに遭遇することがよくあります。このエラーは通常、ファイルまたはディレクトリのアクセス許可が正しくないことが原因で発生します。

PHP 致命的エラーの解決策: 未定義関数 mysqli_connect() の呼び出し PHP 致命的エラーの解決策: 未定義関数 mysqli_connect() の呼び出し Jun 23, 2023 am 09:40 AM

PHP を使用して Web アプリケーションを作成する場合、データの保存に MySQL データベースがよく使用されます。 PHP は、MySQLi と呼ばれる MySQL データベースと対話する方法を提供します。ただし、MySQLi を使用している場合、以下に示すようなエラー メッセージが表示されることがあります。 PPHPFatalerror:Calltounknownfunctionmysqli_connect() このエラー メッセージは、PHP が MySQLi を見つけられないことを意味します。

See all articles