Почему «if (variable = class)» возвращает false? - PullRequest
0 голосов
/ 18 ноября 2011

У меня есть этот кусок кода:

$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 ]

1 голос
/ 18 ноября 2011

Я не думаю, что вы можете назначить переменную в операторе 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)) {

Это должно помочь.

0 голосов
/ 18 ноября 2011

Это простая проблема отладки, а не вопрос переполнения стека ...

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

вернет int(0) или bool(false) или NULL

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...