一个对象可以实例化为null吗? (PHP)

时间:2014-04-14 10:24:05

标签: php

我不明白这种行为在php(自5.4以来?)

class Test {
    function __construct() {
        return null ;
    }
} ;

$a = new Test() ;
if($a) {
    echo "I am printing this. Why am I printing this ??" ;
}

$ a应该等于NULL,但它会通过测试if()...

在某些情况下(如果参数对例子无效)是否可以在使用“new”时获取null对象?

1 个答案:

答案 0 :(得分:4)

构造函数不返回任何内容。 ctor运行后,该对象已创建。您的return null会被忽略。

编辑:即使有可能在某些事情失败时在ctor中返回null也是不好的做法。

改为向exception投放一条明确的消息。

帮助页面:http://www.php.net/manual/en/language.exceptions.php