When I was testing a certain php space, I found that its error level was set very sensitively.
For example, if a variable is not declared and does not affect execution, error messages will be output, such as
if($name == "") echo "The name is empty";
?>
The error reported is
Warning: Undefined variable: name in D:XXXXtest.php on line 1
This situation often occurs, but I cannot modify the configuration of php.ini, so I adopted the method of dynamically changing the error output level.
The function is
error_reporting
Configuring the level of error information reporting.
Syntax: int error_reporting(int [level]);
This function is used to configure the level of error information reporting. The parameter level is an integer bitmask (bitmask), see the table below.
The mask value represents the name
1 E_ERROR
2 E_WARNING
4 E_PARSE
8 E_NOTICE
16 E_CORE_ERROR
32 E_CORE_WARNING
E_NOTICE means not recording in general situations , only used when there is an error in the program, such as trying to access a non-existent variable,
or calling the stat() function to view a non-existent file.
E_WARNING is usually displayed but does not interrupt program execution. This is useful for debugging.
Example: calling ereg() with the regular expression in question.
E_ERROR is usually displayed and will interrupt program execution. This means that memory configuration or other errors cannot be traced using this mask.
E_PARSE Parse error from syntax.
E_CORE_ERROR Like E_ERROR, but excludes errors caused by the PHP core.
E_CORE_WARNING Like E_WARNING, but does not include PHP core error warnings.
In my case, I adopted the following method to solve my problem!
error_reporting(E_ERROR|E_PARSE|E_CORE_ERROR|E_CORE_WARNING);