-4

注意:未定义变量:第 20 行 .../application_bottom.php 中的记录器

if (!is_object($logger)) $logger = new logger;

我解决了这个问题

if (!is_object('logger')) $logger = new logger;

但为什么?有人可以解释一下吗

4

1 回答 1

1

以下条件:

if (!is_object('logger'))

基本上是问“如果字符串'logger'在一个对象中......”这将始终返回false并且不是解决您问题的正确方法。您可以使用isset()和的组合is_object()来实现您想要的:

if (!(isset($logger) && is_object($logger))) $logger = new logger;

你得到了你的错误,因为$logger在运行时没有定义is_object(),通过检查 if$logger是否设置并使用&&运算符确保如果返回 falseis_object()将不会运行。isset()

于 2013-07-21T14:43:53.943 回答