当函数未定义时,PHP会无声地失败?

时间:2010-05-17 18:21:57

标签: php

我正在从PHP4迁移到PHP5

我的.htaccess中有这个:

php_flag display_errors on
php_value error_reporting 2039

用于显示所有错误。

我仍然遇到一些错误,但是当我调用一个未定义的函数时,我常常遇到错误,但现在它停在它所在的位置,并将客户端的所有内容发送到错误,之后没有任何内容。没有错误消息。

这是phpinfo告诉我的:

Directive   Local Value Master Value
display_errors  On  Off
error_reporting 2039    6143

我希望能够在出于问题排查目的时看到我的错误消息。

有人可以告诉我我需要做什么吗?谢谢!

3 个答案:

答案 0 :(得分:5)

如果一切都失败了,只需将此代码放在(/每个)脚本的开头:

error_reporting(E_ALL);
ini_set('display_errors', 1);

答案 1 :(得分:1)

这应该显示所有消息:

ini_set('display_errors', true);
error_reporting(E_ALL);

答案 2 :(得分:1)

我猜你的PHP 5版本是> = PHP 5.2.0并且原始错误报告级别是E_ALL & ~E_NOTICE(或E_ALL ^ E_NOTICE,两者都有相同的结果)。

在PHP 5.2.0之前E_ALL的值为2047,因此您的错误级别为2039,因为不包括E_NOTICE级别{{1} }})。从PHP 5.2.0开始,8更改为E_ALL(从PHP 5.3.0更改为6143),这意味着30719不再是E_ALL & ~E_NOTICE,而是而是2039(或PHP 5.3中的6135)。

至于不显示错误(调用未定义的函数应该是一个致命错误!),请参阅其他答案。