PHP 오류 처리 오류 보고...LOGIN

PHP 오류 처리 오류 보고 수준

오류 보고서 수준

오류 유형

PHP의 가장 일반적인 오류 표시 스크린샷으로, 이 책은 요약하는 데 도움이 됩니다.

[마스터 수준 오류 유형] 가장 일반적으로 사용되는 오류를 세 가지 유형으로 나눕니다.

错误类型说明
E_ERROR错误,文件直接中断
E_WARNING警告,问题比较严重。但是还会继续向下运行
E_NOTICE提示,有些小问题不会影响到程序。常发生在项目未定义
E_PARSE编译时语法解析错误。解析错误仅仅由分析器产生。
E_ALL所有的错误
E_STRICT启用PHP对代码的修改建议,以确保代码具有最佳的互操作性和向前兼容性。
E_DEPRECATED启用后将会对在未来版本中可能无法正常工作的代码给出警告。


위 유형 중

오류가 가장 심각하므로 해결해야 합니다. 그렇지 않으면 프로그램을 계속 실행할 수 없습니다.

경고도 매우 중요합니다. 통(Tong)도 해결해야 한다. 명확하고 의도적인 것이라면 굳이 다룰 필요가 없습니다.

공지 사항은 무시하셔도 됩니다. 그러나 일부 회사에서는 프로젝트 표준이 특히 높습니다. 이는 또한 높은 표준 요구 사항을 가진 프로젝트에서도 해결되어야 합니다. 통지는 PHP의 실행 효율성에 영향을 미치기 때문입니다. 일반적으로 함수가 정의되지 않은 경우 등에 발생합니다.

파싱 오류는 문법 오류 및 오타를 의미하며 이를 해결해야 합니다.

모든 유형의 오류를 모두 나타냅니다

[오류 유형 수준 이해] 이 세 가지 유형 중에서 이해해야 할 몇 가지 다른 오류 항목이 있습니다.

错误类型错误说明
E_CORE_ERROR在PHP初始化启动过程中发生的致命错误。该错误类似E_ERROR,但是是由PHP引擎核心产生的
E_CORE_WARNINGPHP初始化启动过程中发生的警告 (非致命错误) 。类似 E_WARNING,但是是由PHP引擎核心产生的。
E_COMPILE_ERROR致命编译时错误。类似E_ERROR,但是是由Zend脚本引擎产生的。
E_COMPILE_WARNING编译时警告(非致命错误)。类似E_WARNING,但是是由Zend脚本引擎产生的
E_USER_ERROR用户自定义错误
E_USER_WARNING用户自定义警告
E_USER_NOTICE用户自定义提示
E_USER_DEPRECATED用户产少的警告信息。类似E_DEPRECATED,但是是由用户自己在代码中使用PHP函数trigger_error()来产生的。
E_RECOVERABLE_ERROR可被捕捉的致命错误。它表示发生了一个可能非常危险的错误,但是还没有导致PHP引擎处于不稳定的状态。


학습 과정에서는 위의 유형을 이해하면 됩니다. 기본적으로 발생하지 않기 때문에 발생하면 이 책이나 매뉴얼을 확인하여 알아볼 수 있습니다.

error_reporting 보고 오류 유형

error_reporting은 오류 보고를 의미합니다. php.ini에도 이러한 매개변수가 있습니다. 이 매개변수. PHP 엔진이 기록, 보고 및 표시하는 오류 유형을 결정합니다.

1. php.ini에서 error_reporting 매개변수를 설정합니다. error_reporting 매개변수가 0으로 설정된 경우. 전체 PHP 엔진의 오류는 표시, 출력 또는 기록되지 않습니다. 다음 장에서 설명할 로깅에는 기록되지 않습니다.

모든 오류를 표시하려면 다음과 같이 작성할 수 있습니다. :

error_reporting = E_ALL

모든 오류를 표시하고 제외하려는 경우 프롬프트에서 이 매개변수를 다음과 같이 작성할 수 있습니다.

error_reporting = E_ALL & ~ E_NOTICE

모든 오류를 표시하지만 힌트, 호환성 및 향후 호환성은 제외합니다. 다음과 같이 쓸 수 있습니다:

error_reporting = E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED

2. 어떤 경우에는 php.ini를 작동할 권한이 없습니다. 파일을 관리하고 싶은데 error_reporting을 어떻게 해야 하나요?

실행 중인 xxxx.php 파일 시작 부분에서 error_reporting() 함수를 사용하여 목표를 달성할 수 있습니다.

데모 코드는 다음과 같습니다.

<?php

//关闭了所有的错误显示
error_reporting(0);


//显示所有错误
//error_reporting(E_ALL);

//显示所有错误,但不显示提示
//error_reporting(E_ALL & ~ E_NOTICE);
?>

위 코드를 시도해보고 의도적으로 잘못된 코드를 작성해 볼 수도 있습니다. 지정된 오류가 현재 파일에 표시되는지 여부입니다.

[지식 포인트 확장 및 이해]: @ 기호는 이전에 배운 한 줄이므로 오류가 표시되지 않습니다. @ 기호를 사용하지 않거나 아껴서 사용하세요.

존재하지 않는 파일을 읽어 보겠습니다. 이 PHP 코드는 구현 프로세스를 보여줍니다.

<?php
//读取一个不存在的adsaf.txt文件,用@符抑制错误
@$fp = fopen('adsaf.txt','r');
?>

PHP 커널의 @ 기호 구현 프로세스는 다음과 같습니다.

<?php
//关闭错误
error_reporting(0);

//读取一个不存在的文件,显示错误

//显示错误
error_reporting(E_ALL & ~ E_NOTICE);
?>


다음 섹션
<?php //关闭错误 error_reporting(0); //读取一个不存在的文件,显示错误 //显示错误 error_reporting(E_ALL & ~ E_NOTICE); ?>
코스웨어