回报给我永远的真实

时间:2015-02-20 18:31:59

标签: php function oop

伙计们我有这个代码:

class Test {

public function __construct($valore) {

    if ($valore != TRUE ) {
        return false;
    } else {
        return true;
    }

  }
}

在另一页中:

$test = new Test("");

if ($test) {
echo "result is: TRUE";
} else {
echo "result is: FALSE";
}

为什么一直都是真的? 对不起,谢谢!

2 个答案:

答案 0 :(得分:2)

构造函数没有返回值。因此,如果您想要测试该值,则需要使用方法为您执行此操作。

class Test 
{
    private $valore;

    public function __construct($valore) {
        $this->valore = $valore;
    }

    public function test() {
        return (bool) $valore;
    }
}

$test = new Test("");

if ($test->test()) {
    echo "result is: TRUE";
} else {
    echo "result is: FALSE";
}

Demo

答案 1 :(得分:-1)

总是如此,因为$ test对象始终不是false,它是一个对象。构造函数的返回值不是您正在测试的。

class Test {
var $valore;
public function __construct($valore) {

    if ($valore != TRUE ) {
        $this->valore = false;
    } else {
        $this->valore = true;
    }

  }
}

$test = new Test(FALSE);

if ($test->valore === TRUE) {
echo "result is: TRUE";
} else {
echo "result is: FALSE";
}