使用带有不同变量的if elseif,而不是if块

时间:2018-03-12 07:32:22

标签: php

我可以使用带有不同变量的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{

  }

1 个答案:

答案 0 :(得分:0)

您的代码执行两项不同的操作 -

第一个将由4个if语句组成,前3个将检查每个单独的字段是否为空。这允许您设置错误消息以说明特定字段为空。最后一个测试只会在所有3个字段都包含内容时运行该块。

第二段代码只会触发所有4个代码块中的一个。所以它可能会说$firstname是空的或第二个名字。但这不会让你验证所有字段,并说明每个字段是否为空。

这个示例中,您可能希望第一个检查每个字段,如果所有字段都已填充,则只执行最后一个块。

虽然应该注意第一种情况下的if条件可能是错误的......

if(!empty($firstname) || !empty($lastname) || !empty(password){ 

应该是......

if(!empty($firstname) && !empty($lastname) && !empty(password){ 

这表示如果所有字段都不为空(所有字段都包含内容),则现有版本在任何字段不为空(||和&&)之间的差异时都有效。