如果在PHP中的声明驱使我爬上墙

Chr*_*son 2 php if-statement

好吧,我一直在教自己PHP并做了大约40个小时的小项目,我认为我没有贬低一个简单的IF语句,但......下面的两个回声显示了正确的事情(密码和密码的长度).

但是,带有"ARGH"的回声和studentnotexist函数被调用!我不知道为什么.当然这很简单.

echo $password;
echo strlen($password);

if (strlen($password < 2)) {
    echo "********************* ARGH ************************";
    studentnotexist();
    session_destroy();
    die();
}
else 
//Begin IF blocks that test various conditions for user name and password
if ($password != $passwordentered) { //if password is wrong
    badpassword();
    die();
} 
Run Code Online (Sandbox Code Playgroud)

Mik*_*eC8 8

您正在检查"$ password <$ 2"的长度而不是"$ password"的长度.

观察差异:

if (strlen($password < 2)) {
Run Code Online (Sandbox Code Playgroud)

VS

if (strlen($password) < 2) {
Run Code Online (Sandbox Code Playgroud)

看看括号的位置.

你想要第二个.