#このチュートリアルの動作環境: Windows7 システム、PHP8 バージョン、DELL G3 コンピューターphp エラー レベルの種類: 1. 解析エラーまたは構文エラー。このエラーはプログラムの実行を停止し、エラー メッセージを表示します。2. 致命的なエラー。3. 警告エラー。プログラムにはエラーはありませんが、実行プロセス中にプログラムの不合理な点が発見されたため、警告メッセージが表示され、プログラムは実行を続行します。 4. 警告エラーと同様のエラーに注意してください。プログラムにはエラーが含まれていますが、スクリプトの実行は許可されています; 5. 有効期限が切れた一部の関数を使用すると、最低レベルのエラー (非推奨、非推奨) が発生し、プログラムは実行を継続します。
解析エラー > 致命的エラー > 衰退中 > 通知 > 非推奨
## 1. 解析エラーまたは構文エラー (解析エラー) 構文エラーはプログラミングで最も一般的なエラーであり、最も簡単に解決できます。例: セミコロンが欠落している場合、というエラーメッセージが表示されます。このエラーによりプログラムの実行が停止し、エラー メッセージが表示されます。エラーメッセージに基づいてプログラムを修正し、再実行できます。
[例] 以下では、単純なコードを使用して、一般的な構文エラーと関連するエラー メッセージを示します。
<?php $a = 1; $b = 2; $c = $a + $b echo ; ?>
; は、上記のコードの 4 行目の最後で省略されているため、上記のコードを実行すると、次のエラー メッセージが表示されます。結果、構文エラーが発生し、プログラムが下向きの実行を続行できなくなります。これらのエラーが解決されて初めて、プログラムはスムーズに実行できるようになります。
2. 致命的なエラー: これは PHP コードを理解する PHP コンパイラーですが、エラーの種類を認識します未宣言の関数の場合。これは、関数定義なしで関数を呼び出すことを意味します。 プログラムはエラーを直接報告するため、コードを変更する必要があります。 ! !プログラムの実行を中断するには、 register_shutdown_function() 関数を使用して、プログラムが終了する前に関数をトリガーできます。
例:Parse error: syntax error, unexpected 'echo' (T_ECHO) in D:\WWW\index.php on line 5
3. 警告: プログラムには構文エラーはありませんが、実行中に PHP が検出します。プログラム内に不合理な点があり、警告メッセージが表示されますが、プログラムは実行を続けます。 例: 除数として 0 を使用すると、プログラムが正しく実行されず、エラー メッセージが出力されます。
<?php function add($x, $y) { $sum = $x + $y; echo "sum = " . $sum; } $x = 0; $y = 20; add($x, $y); diff($x, $y); ?>
エラー:
##4. 注意: これは、プログラムにエラーが含まれているものの、スクリプトの実行は許可されていることを意味する警告エラーに似ています。この問題は、未定義の変数、定数、または配列キーを引用符なしで使用すると発生し、プログラムは実行を継続します <?php
$a = 1;
$b = 0;
$c = $a / $b;
echo "$a / $b = $c";
?>
説明: このプログラムは、宣言されていない変数 $y を使用します。 , したがって、エラーメッセージが表示されます。
5. 最低レベルのエラー (非推奨、非推奨、非推奨)期限切れの関数の使用時間が表示され、プログラムは実行を続けます。
2. PHP の設定が正しくありません
<?php header("content-type:text/html;charset=utf-8"); $x = "PHP中文网"; echo $x; echo $y; ?>
##このように設定すると、すぐに有効になります。ただし、現在のスクリプトの error_reporting() 関数呼び出しの背後の領域のみです。
error_reporting = E_ALL&~E_NOTICE; //设置错误报告级别 display_errors = 1; //开发环境开启,生产环境关闭
注: 設定ファイル php.ini の display_errors のデフォルト値は On で、これはエラー プロンプトが表示されることを意味します。Off に設定すると、すべてのエラー プロンプトがオフになります。
error_reporting(0) を使用するか、関数の前に
# を追加してエラー出力を抑制し、エラー メッセージによる機密情報の漏洩を防ぎます。
パラメータ レベル
新しい error_reporting レベル。ビットマスクまたは名前付き定数を使用できます。
古い整数ベースのエラー レベルは常に期待どおりに動作するとは限りません。
レベルの可能な値 (php でのエラー報告レベル)共通: 合計約 1515个正好对应二进制的15位。
需要注意的是, 上述表中的字段, 不是一成不变的, 不同的PHP版本, 值可能会不同
任意数目的以上选项都可以用“或”来连接(用 OR 或 |),这样可以报告所有需要的各级别错误。
例如,下面的代码关闭了用户自定义的错误和警告,执行了某些操作,然后恢复到原始的报错级别:
例:
<?php error_reporting(0); //禁用错误报告 error_reporting(E_ERROR | E_WARNING | E_PARSE);//报告运行时错误 error_reporting(E_ALL); //报告所有错误 error_reporting(E_ALL ^ E_NOTICE); //除E_NOTICE报告所有错误,是在php.ini的默认设置 error_reporting(-1); //报告所有 PHP 错误 error_reporting(3); //不报E_NOTICE error_reporting(11); //报告所有错误 ini_set('error_reporting', E_ALL); // 和 error_reporting(E_ALL); 一样 error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE);//表示php错误,警告,语法错误,提醒都返错。 ?>
PHP的异常是PHP5的新增特性,与JAVA/C#的异常不同,PHP异常需要手动抛出throw new Exception,而不是系统自动抛出。
PHP错误与异常的区别,他们是2个不同的概念,但有共同的地方:
如果异常不捕获处理,程序将会终止,并报出Fatal Error 错误,看到这里大家就会觉得异常是不是错误的一种,这是一种错觉,但这样理解也可以。但异常捕获后程序可以继续执行,而真正的Fatal Error错误出现后程序就必须终止。
异常可以使用 try{}catch(){}
来捕获捕获,捕获之后后续代码可以继续执行;而错误是无法使用 try{}catch(){} 捕获的。
如果抛出了异常,就必须捕获它,否则程序终止执行。
推荐学习:《PHP视频教程》
以上がPHPのエラーレベルにはどのような種類があるのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。