当我尝试实例化一个不存在的类时,PHP似乎没有警告我

时间:2011-06-14 05:52:03

标签: php debugging

我正在使用PHP5.3命名空间类。一个常见的错误是没有正确的命名空间(绝对vs相对,例如。\ App \ Models \ Something vs Models \ Something vs \ Something)。我经常在我的类中使用PDO,以便PHP尝试查找\App\PDO例如

我已经

ini_set('display_errors', 'ON');
ini_set('error_reporting', 'E_ALL | E_STRICT');

我有时会注意到

$user = new User(); // when User should be located \App\User or App\User as I am in the root namespace, PHP does not trigger errors ... just give me a blank screen ...

3 个答案:

答案 0 :(得分:1)

你的两行都错了:

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

值不应该在引号中。

答案 1 :(得分:0)

第二个参数中的单引号是错误的。它被评估为0。

ini_set('error_reporting', 'E_ALL | E_STRICT');

// same as:

ini_set('error_reporting', 0);

有关您可以传递的第二个参数的一些有效示例,请参阅this page

一旦你修好了,你就会得到:

PHP Fatal error:  Class 'Foo' not found

答案 2 :(得分:0)

您的代码应该是这样的:

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

此外,确认您可以通过ini_set()更改php设置,因为您可能认为自己正在更改display_errorserror_reporting,但可能不允许。也就是说,虽然您的代码执行,但解析器不会考虑您的设置。