>백엔드 개발 >PHP 문제 >PHP 오류 수준의 유형은 무엇입니까?

PHP 오류 수준의 유형은 무엇입니까?

青灯夜游
青灯夜游원래의
2023-01-30 16:14:383381검색

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번째 줄 끝에서 생략되어 있으므로 위 코드를 실행하면 다음과 같은 오류 메시지가 표시됩니다.

Parse error: syntax error, unexpected 'echo' (T_ECHO) in D:\WWW\index.php on line 5

위의 예와 실행 결과에서 볼 수 있듯이 구문 오류로 인해 프로그램이 실행되지 않습니다. 계속해서 실행하지 못하게 됩니다. 이러한 오류가 해결된 후에야 프로그램이 원활하게 실행될 수 있습니다.

2. 치명적인 오류:

이것은 PHP 컴파일러가 PHP 코드를 이해하지만 선언되지 않은 함수를 식별하는 오류 유형입니다. 이는 함수 정의 없이 함수를 호출하는 것을 의미합니다.
프로그램에서 직접 오류를 보고하므로 코드를 수정해야 합니다! ! ! 프로그램 실행을 중단하려면 Register_shutdown_function() 함수를 사용하여 프로그램이 종료되기 전에 함수를 트리거할 수 있습니다

예를 들어

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

diff($x, $y); 
?>

PHP 오류 수준의 유형은 무엇입니까?

설명: 10번째 줄에서 diff() 함수가 호출되지만 diff( )에는 선언 정의가 없으므로 오류가 발생합니다.

3. 경고:

프로그램에는 구문 오류가 없지만 실행 과정에서 PHP는 프로그램의 일부 불합리한 부분을 찾아 경고 메시지를 표시하지만 프로그램은 계속 다운됩니다. 처형.

예: 0을 제수로 사용하면 프로그램이 잘못 실행되고 오류 메시지가 출력됩니다.

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

오류:

PHP 오류 수준의 유형은 무엇입니까?

4. 주의사항:

프로그램에 오류가 있음을 의미하는 경고 오류와 유사하지만 스크립트 실행을 허용합니다. 정의되지 않은 일부 변수, 상수 또는 따옴표 없이 배열 키를 사용할 때 나타나며 프로그램은 계속 실행

<?php   
header("content-type:text/html;charset=utf-8");
$x = "PHP中文网"; 
echo $x; 
echo $y; 
?>

PHP 오류 수준의 유형은 무엇입니까?

설명: 이 프로그램은 선언되지 않은 변수 $y를 사용하므로 오류 메시지를 표시합니다.

5. 만료된 일부 기능을 사용할 때 가장 낮은 수준의 오류(더 이상 사용되지 않음, 권장되지 않음, 권장되지 않음)

가 발생하며 프로그램이 계속 실행됩니다.

2. PHP 구성이 잘못되었습니다.

1. PHP 구성 파일 php.ini

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

2.error_reporting() 함수를 사용하세요.

이렇게 설정하면 적용됩니다. 즉시. 그러나 현재 스크립트에서 error_reporting() 함수 호출 이후 영역에서만 가능합니다.

int error_reporting ([ int $level ] )1.

매개변수는 정수 또는 해당 상수 식별자일 수 있습니다. 상수 형식을 사용하는 것이 좋습니다. 반환 값은 현재 위치에서 유효한 오류 보고 수준의 값(정수 값)입니다.

참고: php.ini 구성 파일에 있는 display_errors의 기본값은 On입니다. 이는 오류 프롬프트가 표시된다는 의미입니다. Off로 설정하면 모든 오류 프롬프트가 꺼집니다.

error_reporting(0)을 사용하거나 함수 앞에 @를 추가하여 오류 출력을 억제하면 오류 메시지에서 민감한 정보가 유출되는 것을 방지할 수 있습니다.

매개변수 수준

새로운 오류 보고 수준. 비트마스크 또는 명명된 상수일 수 있습니다.

향후 버전과의 호환성을 보장하려면 명명된 상수를 사용하는 것이 좋습니다. 오류 수준이 추가되고 정수 값 범위가 증가함에 따라

이전 정수 기반 오류 수준이 항상 예상대로 작동하지는 않습니다.

레벨 가능한 값​​(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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.