>  기사  >  백엔드 개발  >  PHP의 error_reporting()

PHP의 error_reporting()

王林
王林원래의
2024-08-29 13:06:15280검색

PHP에 있는 다양한 오류 수준에서 error_reporting은 보고된 오류가 무엇인지 나타내고 런타임 중에 error_reporting 지시문을 결정하는 PHP의 함수입니다. 이 기능을 사용하면 스크립트에 필요한 기간(일반적으로 런타임)에 대해 규정된 수준을 설정할 수 있습니다. 제공된 입력을 기반으로 이전 오류 보고 수준을 반환하거나 매개변수가 제공되지 않은 경우 현재 보고 수준을 반환합니다.

무료 소프트웨어 개발 과정 시작

웹 개발, 프로그래밍 언어, 소프트웨어 테스팅 등

매개변수 구문

다음은 매개변수가 포함된 구문입니다.

구문:

error_reporting(level)

매개변수:

선택적이며 입력 기능에 사용되는 단일 매개변수 수준만 있습니다. 현재 스크립트에 대한 오류 보고 수준을 지정합니다. 허용되는 값은 상수 이름과 값 번호입니다.

참고: PHP 향후 버전과의 호환성을 보장하려면 명명된 상수를 사용하는 것이 좋습니다.

설명이 아래와 같이 몇 가지 사전 정의된 상수가 있습니다.

1. E_Error: 복구할 수 없는 치명적인 런타임 오류를 나타내며 스크립트 실행이 중단됩니다.

2. E_경고: 스크립트 실행이 계속되는 치명적이지 않은 오류입니다.

3. E_Parse: 파서에 의해서만 생성되는 컴파일 시간 구문 분석 오류를 표시합니다.

4. E_Notice: 이는 스크립트가 오류를 표시하는 항목을 발견했음을 나타내는 런타임 알림을 발행하지만 이는 일반 스크립트를 실행하는 동안에도 발생할 수 있습니다.

5. E_Core_Error: PHP를 처음 시작하는 동안 PHP 코어에서 생성되는 몇 가지 치명적인 오류가 발생할 수 있습니다.

6. E_Core_Warning: PHP 초기 시작 중에 발생하는 치명적이지 않은 오류를 표시하며 PHP 코어에서도 생성됩니다.

7. E_Compile_Error: 컴파일 시간 동안 발생하는 치명적인 오류를 표시합니다. 이는 Zend 스크립팅 엔진에 의해 생성됩니다.

8. E_Compile_Warning: 위와 유사하게 컴파일 시간 경고를 표시하거나 치명적이지 않은 오류라고 할 수 있으며 Zend 스크립팅 엔진에서도 생성됩니다.

9. E_User_Error: 사용자가 생성한 오류를 표시합니다. 이는 PHP 코드에서 PHP 함수를 사용하여 생성된다는 점을 제외하면 E_ERROR와 유사합니다.

10. E_All: E_STRICT를 제외한 모든 오류와 경고를 지원하는 위의 모든 항목을 조합한 것과 같습니다.

반환 값:

error_reporting 함수는 매개변수가 제공되지 않는 경우 이전 보고 수준 또는 현재 오류 보고 수준을 제공합니다.

PHP에서 error_reporting 작업

이 기능을 사용하면 개발자는 다양한 종류의 오류와 해당 오류 중 애플리케이션에 발생하는 오류 수를 실제로 제어할 수 있습니다. 이 함수는 PHP ini 구성 파일에 표시될 error_reporting 지시어를 설정합니다.

error_reporting(0);
  • When 0 is passed to the error reporting function it removes all warnings, errors, parse related messages and notices, if any. Instead of having to include this line in each of the PHP code files, it is practical to have it added and to turn off these report messages in the ini file present or in the .htaccess.
error_reporting(E_NOTICE);
  • In PHP the variables can be used even when not declared. But this practice is not feasible as the undeclared variables may cause application related issues if it is used in conditional statements and loops. This may also take place because of the spelling mismatch between the declared variables and of that being used for conditions and loops. When this E_NOTICE will be passed into the error_reporting function, only then these undeclared variables will be shown in the web application.
error_reporting(E_ALL & ~E_NOTICE);
  • This error reporting function helps to filter out the errors which can be displayed. The “~” character here means the “not/no” and hence ~E_NOTICE here means to not show any notices. Here the “&” character represents “true for all” whereas “|” means as long as one of the parameters is true. They are exactly similar to the functions AND and OR in PHP.
error_reporting(E_ALL);
error_reporting(-1);
ini_set('error_reporting', E_ALL);
  • All of the above lines serve the same purpose i.e. show all the errors. E_ALL is the most widely used function among all others by developers to display error messages as it is more comprehensible and intelligible.

Error Logging in PHP using error_log() Function

It happens so that during the production phase, error messages are to be hidden from the end-users but this information is needed to be registered for tracing purpose. And the best way to record these errors on the production web application is to write and store in log files.

An easy way to log these is by using the error_log function which takes our parameters as input. The only mandatory parameter here is the first one which contains details about the errors and what all to be logged. Other parameters like the type, destination, and header are non-mandatory here for this function.

error_log("Error found!", 0);
  • The type parameter will be set to 0 by default if not given, and the log information will be appended at the end of the log file generated in the webserver.
error_log("Error information being emailed!", 1, "[email protected]");
  • The type parameter here is 1 will email this log specified in the 3rd parameter which is the email id. For this to work, the PHP ini file must be having a correct SMTP configuration to send out emails. Some of the parameters required for these include host, encryption type, port, password and username.
error_log("Write errors to this file", 3, "https://cdn.educba.com/tmp/errorfile.log")<em>;</em>
  • The same error logs can also be written down to the required file whose path will be given in the third parameter. Make sure the given path has all required permissions.

Example of error_reporting() in PHP

Given below is the example:

Code:

<?php
$a = 1;
trigger_error("user warning!", E_USER_WARNING);
$a = 2;
echo "Value of $a is ${$a}";
error_reporting(0);
error_reporting(E_ALL);
?>

Output:

PHP의 error_reporting()

Advantages of using error_reporting function in PHP

  • error_reporting is good for debugging purposes and for developing web application.
  • Each and every error can be logged and fixed as soon as it happens using this function.
  • To not show it to the end-user, make sure you redirect the errors to a log file while releasing it.

Conclusion

Hence we can say that error_reporting() function in PHP are therefore helpful in cases when there are a lot of problems with the PHP web application and we need to display all of these errors and warnings either for development or debugging purposes. It is a function we can enable different kinds of warnings or error messages and most of them are as discussed above.

위 내용은 PHP의 error_reporting()의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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