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


PHP does not appear to warn me when I try to instantiate a non-existent class

我使用的是PHP5.3命名空间类。一个常见的错误是没有正确处理名称空间(绝对与相对,例如''App''Models''Something与Models''Someth与''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 ...

两行都错了:

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

值不应该用引号括起来。

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

ini_set('error_reporting', 'E_ALL | E_STRICT');
// same as:
ini_set('error_reporting', 0);

有关可以作为第二个参数传递的内容的一些有效示例,请参阅本页。

一旦你修复了,你会得到:

PHP Fatal error:  Class 'Foo' not found

您的代码应该是这样的:

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

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