伙计们我有这个代码:
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";
}
为什么一直都是真的? 对不起,谢谢!
答案 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";
}
答案 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";
}