PHP返回值...我错过了什么?

时间:2012-02-09 00:43:52

标签: php return-value return-type

函数返回值($ checkZero)不应该为false(布尔值)吗? 以下结果是'零是零'。我错过了什么?

class CheckZero {
    function __construct() {
        $zero = 3;
        if ($zero === 0) {
            return true;
        }
        else {
            return false;
        }
    }
}

$checkZero = new CheckZero();
if (!$checkZero) {
    echo 'zero is not zero';
}
else {
    echo 'zero is zero';
}

2 个答案:

答案 0 :(得分:1)

你不能从类构造函数中return。返回的是新创建的对象。

如果var_dump返回值,您将看到返回了一个对象:

object(CheckZero)#1 (0) {
}

答案 1 :(得分:0)

构造函数原型:

void __construct ([ mixed $args [, $... ]] )

这意味着__construct的返回值被丢弃并且无用,因为它是返回的对象本身。

如果您运行var_dump($checkZero);,那么您会看到它是clas CheckZero的对象。