我在php中使用if语句。 我想要的是-如果用户未输入登录ID或usernamd + password, 然后显示错误消息-但不起作用, 这是我的代码-
if($add_data['social_id']!="" || $add_data['username'] && $add_data['password']=="")
{
//login with social id code here
}
elseif($add_data['username'] && $add_data['password']!="" || $add_data['social_id']=="")
{
//login with usernamd and password code here
}
else
{
//please enter social id or username with password
}
答案 0 :(得分:1)
如果尚未设置变量!=""
,则使用true
可能返回null != ""
。您可以使用empty()
if(!empty($add_data['social_id']))
{
//login with social id code here
}
elseif(!empty($add_data['username']) && !empty($add_data['password']))
{
//login with username and password code here
}
else
{
//please enter social id or username with password
}
答案 1 :(得分:0)
$add_data['username'] && $add_data['password'] == ""
并没有达到您的期望。您无法通过这种方式分解条件。
相反,使用$add_data['username'] == "" && $add_data['password'] == ""
要提高可读性,请对$add_data['username'] && $add_data['password'] != ""
替换为$add_data['username'] != "" && $add_data['password'] != ""
进行相同的操作(但此条件将按预期工作,请参见下文)
执行if ($var && $var2 == "")
将检查$var
是否为假,以及$var2
是否等于""
不是虚假(也称为true)与有别于:
其他所有值都视为true
答案 2 :(得分:-1)
您需要在if语句的每个属性之后添加一个表达式/值:
if($add_data['social_id']!="" || $add_data['username'] != "" && $add_data['password']=="")
{
//login with social id code here
}
// add beside $add_data any expression
elseif($add_data['username'] != "" && $add_data['password']!="" || $add_data['social_id']=="")
{
//login with usernamd and password code here
}
else
{
//please enter social id or username with password
}
第二,我不明白您要把什么条件放进去?如果社交ID不为null,并且用户名或密码也不为null?或应全部输入。
请分享一下,以便我向您发送确切的代码。