php - 如果 && 不正确 && 不正确 && 不正确返回 true

标签 php if-statement

我正在检查是否填充了用户 $_SESSION 变量以及登录是否正确。这是我的代码:

if(!empty($_SESSION['user'])&&!empty($_SESSION['pwd'])&&!verifyLogin($_SESSION['user'],$_SESSION['pwd'])){

$_SESSION['user'] 是用户名,$_SESSION['pwd'] 是密码,verifyLogin() 是我的函数用于验证用户的登录。

为什么即使 $_SESSION['user/pwd'] 为空,我的 if 语句也会返回 true?我不应该返回 false 吗?

即使我这样做:

if(!empty($_SESSION['user'])&&!empty($_SESSION['pwd'])&&verifyLogin($_SESSION['user'],$_SESSION['pwd'])==false){

我仍然得到相同的结果。

我做错了什么?

最佳答案

更改支票以使用 issetempty 将在它为空时返回 true,但如果它未设置也会返回 true。查看this post about the difference .

if (isset(_usr_) && !empty(_usr_) // exists and isn't empty
 && isset(_pwd_) && !empty(_pwd_)
 && verifyLogin(_usr_, _pwd_)){
}

来自 empty() 的手册:

Returns FALSE if var exists and has a non-empty, non-zero value. Otherwise returns TRUE.

即未设置将返回 TRUE

关于php - 如果 && 不正确 && 不正确 && 不正确返回 true,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14076359/

相关文章:

python - 如何替换矩阵中对应于另一个矩阵的值?

r - 如何寻址下一行中的值

Swift 2.2 - 函数执行后不保留值

php - 在 PHP 中使用 GET 和 POST 作为搜索功能

C# if 语句速记运算符 (?:) results in unreachable code

PHP/MySQL : Hashing common data

php - 使用 PHP 5.3? : operator

java - 如果条件导致程序强制关闭

php - 在 div 中加载新页面

php - 从 Web 服务器获取 POST 请求