php - 正确使用ini_set()的方法

标签 php error-handling

将PHP ini_set()用于 error_reporting 的正确方法是什么?是用引号引起来的:

ini_set('error_reporting', 'E_ALL');

或不带引号:
ini_set('error_reporting', E_ALL);

当我使用带引号的那个时,不会填充我的site_errors.log文件。但是,当我使用不带引号的那一个时,我的site_errors.log文件得到了更新。这是我的php文件的样子:
// my php file
ini_set('display_errors', 'Off');
ini_set('error_reporting', E_ALL);
ini_set('log_errors', 'On');
ini_set('error_log', 'site_errors.log');

最佳答案

没有引号。 E_ALL是一个预定义的PHP常数,本质上是

define('E_ALL', some_value_here);

一旦用引号引起来,它就不再是常量,PHP将其视为纯字符串。

尝试这个:
$x = E_ALL; // no quotes
$y = 'E_ALL'; // with quotes
echo "without: $x   with: $y";

“无”版本将是数字(2 ^ 31-1),而“有”版本将是文字文本E_ALL

关于php - 正确使用ini_set()的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8202596/

相关文章:

vba - VBA循环宏不显示任何错误,但启动后不显示任何结果

PHP: fopen 错误处理

php - 如何获取mysql中每个表的前2条更新记录

PHP crypt函数及算法

vba - 如果在VBA中使用 “if statement”,则不会发生任何错误,请跳过代码

c++ - 在 OpenCL 库中找不到 cl::Error 类

python - 如何捕获仅记录的错误?

php - MySQL php从列和列中查找值

php - HTML 页面尝试从 php/mysql 获取信息

php - 使用可指责行为时的 Yii2 测试