Home > Backend Development > PHP Problem > What are the error levels in PHP?

What are the error levels in PHP?

青灯夜游
Release: 2023-03-17 20:46:01
Original
4696 people have browsed it

php error levels are: 1. E_ERROR fatal runtime error, usually unrecoverable; 2. E_WARNING runtime warning (non-fatal error); 3. E_PARSE compile-time syntax parsing error; 4. E_CORE_ERROR is a fatal error that occurs during the initialization startup process; 5. E_CORE_WARNING is a warning (non-fatal error) that occurs during the initialization startup process; 6. E_COMPILE_ERROR; 7. E_COMPILE_WARNING, etc.

What are the error levels in PHP?

The operating environment of this tutorial: windows7 system, PHP8 version, DELL G3 computer

In our program development, we often encounter some For program running errors, PHP will give different prompts according to the error level of the program. For example, warnings, errors, etc., but these errors can be set. If they are just small errors, we can prevent these errors from being reported.

Error levels in php are:

##4 (integer)##32##64##128##E_COMPILE_WARNINGinteger(integer##512##1024##E_RECOVERABLE_ERROR() since PHP 5.2.0##E_DEPRECATEDRuntime notification. When enabled, a warning will be given about code that may not work properly in future versions.##16384 User generated warning message. Similar to since PHP 5.3.0

How to set the error reporting level in PHP:

1. Modify the PHP configuration file php.ini

After setting error_reporting in this way, restart the web server and it will take effect permanently.
Open the configuration file php.ini and check the default value of error reporting level error_reporting, as follows:

error_reporting=E_ALL & ~E_DEPRECATED & ~E_STRICT1.
Copy after login

It means to report all errors, except E_DEPRECATED and E_STRICT.
Modify it to:

error_reporting=E_ALL &  ~E_NOTICE1.
Copy after login

It means reporting all errors except E_NOTICE. This is also the most commonly used error reporting level. It will not report errors of the attention class (such as using an undefined variable).
Save and take effect after restarting the web server.

2. Use the error_reporting() function

After setting in this way, it can take effect immediately. But only in the area behind the error_reporting() function call in the current script.

int error_reporting ([ int $level ] )1.
Copy after login

The parameter can be an integer or the corresponding constant identifier. It is recommended to use the constant form. The return value is the value (integer value) of the error reporting level in effect at the current location.

Note: The default value of display_errors in the configuration file php.ini is On, which means error prompts are displayed. If set to Off, all error prompts will be turned off.

Use error_reporting(0) or add @ in front of the function to suppress error output to prevent error messages from leaking sensitive information.

Parameter level

New error_reporting level. Can be a bitmask or a named constant.

It is recommended to use named constants to ensure compatibility with future versions. Due to the addition of error levels and the increase in the range of integer values,

older integer-based error levels will not always behave as expected.

level possible values ​​(error reporting level in php)

Common: about 15 in total

What are the error levels in PHP?

15 correspond to binary 15 bits.

It should be noted that the fields in the above table are not static. Different PHP versions may have different values.

Any number of the above options can be connected with "or" ( Use OR or |) to report all required error levels.

For example, the following code turns off user-defined errors and warnings, performs certain operations, and then returns to the original error level:

Example:

<?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错误,警告,语法错误,提醒都返错。
?>
Copy after login

Conversion relationship:

  • E_All: Decimal is 30719, converted to binary it is 111011111111111

  • ##E_NOTICE: Decimal is 8, converted to binary it is 1000

  • ~E_NOTICE: Negate E_NOTICE and become 0111

  • ##E_ALL & ~E_NOTICE:: Perform AND operation on E_ALL and ~E_NOTICE, It becomes 111011111110111. When converted into decimal, it is 30711
  • . You can see that E_ALL does not display all errors. The 12th bit is 0. The weight of this bit is 2 to the 11th power, which is 2048. In fact, it is E_STRICT. value, so E_ALL is to display all error levels except E_STRICT.

  • E_ALL & ~E_NOTICE can be seen in binary. From right to left, the 4th and 12th bits are 0, and the weight of the 4th bit is 2 to the third power, which is 8 is the value of E_NOTICE, so all errors except E_STRICT and E_NOTICE are displayed.
  • Recommended learning: "
PHP Video Tutorial

"

1 E_ERROR (integer) Fatal runtime error. This type of error is generally an unrecoverable situation, such as a problem caused by memory allocation. The consequence is that the script terminates and does not continue to run.
##2 ##E_WARNING (integer)Run-time warning (non-fatal error). Only a prompt message is given, but the script does not terminate.
##E_PARSE (integer)Compile-time syntax parsing error. Parsing errors are generated only by the parser.
##8
##E_NOTICE Runtime notification. Indicates that the script encounters a situation that may appear as an error, but there may also be similar notifications in scripts that can run normally.
16 E_CORE_ERROR(integer) Initialize in PHP A fatal error occurred during startup. This error is similar to E_ERROR, but is generated by the PHP engine core. since PHP 4
##E_CORE_WARNING(integer) Warning (non-fatal error) that occurred during PHP initialization startup. Similar to E_WARNING, but generated by the PHP engine core. since PHP 4
##E_COMPILE_ERROR (integer) Fatal compile-time error. Similar to E_ERROR , but generated by the Zend script engine. since PHP 4
() Compile-time warning (non-fatal error). Similar to E_WARNING, but generated by the Zend script engine. since PHP 4##256 ##E_USER_ERROR
) Error messages generated by users. Similar to E_ERROR, but it is generated by the user using the PHP function trigger_error() in the code. since PHP 4
##E_USER_WARNING(integer) Warning messages generated by users. Similar to E_WARNING, but it is generated by the user using the PHP function trigger_error() in the code. since PHP 4
##E_USER_NOTICE (integer) Notification information generated by users. Similar to E_NOTICE , but it is generated by the user using the PHP function trigger_error() in the code. since PHP 4 ##2048
E_STRICT (integer)Enable PHP's suggestions for code modifications to ensure the best interoperability and forward compatibility of the code. since PHP 5 ##4096
integer Fatal errors that can be caught. It indicates that a potentially dangerous error has occurred, but has not caused the PHP engine to become unstable. If the error is not caught by a user-defined handler, it will become an E_ERROR and the script will terminate. ##8192
(integer) since PHP 5.3.0
E_USER_DEPRECATED(integer) E_DEPRECATED, but it is generated by the user using the PHP function trigger_error() in the code.
30719 ##E_ALL (integer) E_STRICTAll error and warning messages that go out. 30719 in PHP 5.3.x, 6143 in PHP 5.2.x, 2047 previously

The above is the detailed content of What are the error levels in PHP?. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
php
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template