【发布时间】:2011-12-11 20:00:21
【问题描述】:
要重现的代码:
error_reporting(-1);
ini_set('display_errors', 1);
ini_set('error_log', 'log/log');
ini_set('html_errors', 0);
// trigger an error
echo $test;
如果log/log 是可写的并且你没有在php.ini 中设置date.timezone 或使用date_default_timezone_set,你会看到这个错误:
警告:main():依赖系统的时区是不安全的 设置。您必须使用 date.timezone 设置或 date_default_timezone_set() 函数。如果您使用了其中任何一个 方法并且您仍然收到此警告,您很可能 时区标识符拼写错误。我们选择了“欧洲/巴黎” '1.0/no DST' 代替 C:\srv\www\test.php 第 10 行
注意:未定义变量:第 10 行 C:\srv\www\test.php 中的测试
这是非常有用的。在我的情况下,第 10 行是echo $test;。 PHP 没有告诉任何关于设置错误记录器的信息。
你可以花很多时间在大型项目上指出这一点。
如果log/log 不可写,您只会看到未定义的变量通知。
我认为 PHP 可以为日志使用系统时区设置(这很明显)。
这是一个错误,是否应该报告给 PHP 团队?顺便提一句。我使用 PHP 5.3.8(不是最后一个快照)
【问题讨论】:
-
在你的“重现代码”中 $test 永远不会被设置。复制和粘贴错误?
-
它是为了触发错误,所以php会尝试记录它。
-
好的,我现在明白了。为了澄清,你的问题是什么?它看起来像一个错误报告。
-
这不是错误,而是功能请求。
标签: php timezone error-logging