ホームページ  >  記事  >  バックエンド開発  >  PHPのエラーレベルにはどのような種類があるのでしょうか?

PHPのエラーレベルにはどのような種類があるのでしょうか?

青灯夜游
青灯夜游オリジナル
2023-01-30 16:14:383329ブラウズ

php エラー レベルの種類: 1. 解析エラーまたは構文エラー。このエラーはプログラムの実行を停止し、エラー メッセージを表示します。2. 致命的なエラー。3. 警告エラー。プログラムにはエラーはありませんが、実行プロセス中にプログラムの不合理な点が発見されたため、警告メッセージが表示され、プログラムは実行を続行します。 4. 警告エラーと同様のエラーに注意してください。プログラムにはエラーが含まれていますが、スクリプトの実行は許可されています; 5. 有効期限が切れた一部の関数を使用すると、最低レベルのエラー (非推奨、非推奨) が発生し、プログラムは実行を継続します。

PHPのエラーレベルにはどのような種類があるのでしょうか?

#このチュートリアルの動作環境: Windows7 システム、PHP8 バージョン、DELL G3 コンピューター

1 .PHP エラー タイプ

PHP エラー レベル

解析エラー > 致命的エラー > 衰退中 > 通知 > 非推奨

## 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

説明: 10 行目、関数 diff() を呼び出しますが、関数 diff() が宣言で定義されていないため、エラーが発生します。

PHPのエラーレベルにはどのような種類があるのでしょうか?

3. 警告: プログラムには構文エラーはありませんが、実行中に PHP が検出します。プログラム内に不合理な点があり、警告メッセージが表示されますが、プログラムは実行を続けます。 例: 除数として 0 を使用すると、プログラムが正しく実行されず、エラー メッセージが出力されます。

<?php 
function add($x, $y) { 
    $sum = $x + $y; 
    echo "sum = " . $sum; 
}
$x = 0; 
$y = 20;
add($x, $y); 

diff($x, $y); 
?>

エラー:

PHPのエラーレベルにはどのような種類があるのでしょうか?

##4. 注意:

これは、プログラムにエラーが含まれているものの、スクリプトの実行は許可されていることを意味する警告エラーに似ています。この問題は、未定義の変数、定数、または配列キーを引用符なしで使用すると発生し、プログラムは実行を継続します

<?php     $a = 1;
    $b = 0;
    $c = $a / $b;
    echo "$a / $b = $c";
?>

説明: このプログラムは、宣言されていない変数 $y を使用します。 , したがって、エラーメッセージが表示されます。

PHPのエラーレベルにはどのような種類があるのでしょうか?

5. 最低レベルのエラー (非推奨、非推奨、非推奨)

期限切れの関数の使用時間が表示され、プログラムは実行を続けます。

2. PHP の設定が正しくありません

1. PHP 設定ファイル php.ini
<?php   
header("content-type:text/html;charset=utf-8");
$x = "PHP中文网"; 
echo $x; 
echo $y; 
?>
# を変更します

##2. error_reporting() 関数を使用する

##このように設定すると、すぐに有効になります。ただし、現在のスクリプトの error_reporting() 関数呼び出しの背後の領域のみです。

error_reporting = E_ALL&~E_NOTICE; //设置错误报告级别
display_errors = 1; //开发环境开启,生产环境关闭

パラメータには、整数または対応する定数識別子を指定できます。定数形式を使用することをお勧めします。戻り値は、現在の場所で有効なエラー報告レベルの値 (整数値) です。

注: 設定ファイル php.ini の display_errors のデフォルト値は On で、これはエラー プロンプトが表示されることを意味します。Off に設定すると、すべてのエラー プロンプトがオフになります。

error_reporting(0) を使用するか、関数の前に

# を追加してエラー出力を抑制し、エラー メッセージによる機密情報の漏洩を防ぎます。

パラメータ レベル

新しい error_reporting レベル。ビットマスクまたは名前付き定数を使用できます。

将来のバージョンとの互換性を確保するために、名前付き定数を使用することをお勧めします。エラー レベルの追加と整数値の範囲の増加により、

古い整数ベースのエラー レベルは常に期待どおりに動作するとは限りません。

レベルの可能な値 (php でのエラー報告レベル)

共通: 合計約 15

PHPのエラーレベルにはどのような種類があるのでしょうか?

15个正好对应二进制的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(&#39;error_reporting&#39;, E_ALL); // 和 error_reporting(E_ALL); 一样
     error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE);//表示php错误,警告,语法错误,提醒都返错。
?>

三、PHP异常

PHP的异常是PHP5的新增特性,与JAVA/C#的异常不同,PHP异常需要手动抛出throw new Exception,而不是系统自动抛出。

PHP错误与异常的区别,他们是2个不同的概念,但有共同的地方:
如果异常不捕获处理,程序将会终止,并报出Fatal Error 错误,看到这里大家就会觉得异常是不是错误的一种,这是一种错觉,但这样理解也可以。但异常捕获后程序可以继续执行,而真正的Fatal Error错误出现后程序就必须终止。

异常可以使用 try{}catch(){} 来捕获捕获,捕获之后后续代码可以继续执行;而错误是无法使用 try{}catch(){} 捕获的。
如果抛出了异常,就必须捕获它,否则程序终止执行。

推荐学习:《PHP视频教程

以上がPHPのエラーレベルにはどのような種類があるのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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