我正在抓住登录$userrow['name']
的用户名,然后我使用if / else来比较2个字符串
$user1 = "admin";
$user2 = "Gil";
if ($userrow['name'] == $user1 || $user2 ) {
echo "true";
}else{
echo "false";
}
在这种情况下我的$userrow['name']
它=“Andres”,显然是Andres!= Gil ||管理员
我做错了什么?
答案 0 :(得分:4)
这种逻辑更易于维护:
$users = [$user1, $user2];
if (in_array($userrow['name'], $users)) {
// Username exists
}
答案 1 :(得分:3)
您正在进行第一次检查,但检查$user2
会为您提供true
,因为if("Admin")
为true
。
更改
if ($userrow['name'] == $user1 || $user2 )
要
if ($userrow['name'] == $user1 || $userrow['name'] == $user2 )
答案 2 :(得分:3)
你的逻辑错误。我会用英语来说出你的if
陈述的作用:
如果
$userrow['name']
等于变量$user1
中保存的值,或者变量$user2
中保存的值不是 falsey ...
在$user2
中,您的值为“Gil”。由于“Gil”不是假的(换句话说,它不是假的或零或零),因此在if
语句的上下文中进行评估时,它被认为是 true 。我想这就是你要说的话:
if ($userrow['name'] == $user1 || $userrow['name'] == $user2 ) {