为什么“if(variable = class)”返回false?

时间:2011-11-18 17:47:11

标签: php class variables if-statement

我有这段代码:

$username = strip_tags($_POST['username']);
$password = strip_tags(md5($_POST['password']));
require_once '../classes/Login.php';
$Login = new Login;
if($message = $Login->checkUserLogin($username,$password))
 echo $message;
}
else{
 echo "Houston, we have problem";
}

它写道:“Houston, we have problem

所以我想知道为什么?

抱歉我的英文。我希望你理解我!

2 个答案:

答案 0 :(得分:1)

我不认为您可以在IF语句中分配变量,除非您同时将其与另一个变量或值进行比较。这是另一个建议:

$username = strip_tags($_POST['username']);
$password = strip_tags(md5($_POST['password']));
require_once '../classes/Login.php';
$Login = new Login;
$message = $Login->checkUserLogin($username,$password);
if($message != '') {
 echo $message;
}
else{
 echo "Houston, we have problem";
}

抱歉,我再次提出建议。如果你真的只是想知道为什么它不起作用,我不知道怎么回答你的问题。

但是,如果你要比较$message,你可以使用它!:

    if($messageToCompare == $message = $Login->checkUserLogin($username,$password)) {

应该有所帮助。

答案 1 :(得分:0)

这只是简单的调试问题,而不是Stack Overflow的问题......

var_dump( $Login->checkUserLogin($username,$password) );

将返回int(0)bool(false)NULL