我可以使用带有不同变量的elseif而不是if()块吗?
if(empty($firstname)){
}
if(empty($lastname)){
}
if(empty($password)){
}
if(!empty($firstname) || !empty($lastname) || !empty(password){
}
我可以使用它代替if block吗?
if(empty($firstname)){
}elseif(empty($lastname)){
}elseif(empty($password)){
else{
}
答案 0 :(得分:0)
您的代码执行两项不同的操作 -
第一个将由4个if语句组成,前3个将检查每个单独的字段是否为空。这允许您设置错误消息以说明特定字段为空。最后一个测试只会在所有3个字段都包含内容时运行该块。
第二段代码只会触发所有4个代码块中的一个。所以它可能会说$firstname
是空的或第二个名字。但这不会让你验证所有字段,并说明每个字段是否为空。
在这个示例中,您可能希望第一个检查每个字段,如果所有字段都已填充,则只执行最后一个块。
虽然应该注意第一种情况下的if条件可能是错误的......
if(!empty($firstname) || !empty($lastname) || !empty(password){
应该是......
if(!empty($firstname) && !empty($lastname) && !empty(password){
这表示如果所有字段都不为空(所有字段都包含内容),则现有版本在任何字段不为空(||和&&)之间的差异时都有效。