如何在php中更好地构造if语句?

如何在php中更好地构造if语句?,php,Php,您可以直接在函数中传递变量,并生成如下内容: 函数示例($role,$var1=null,$var2=null,$var3=null){…} 然后检查是否为空将一个条件与或一起使用,并将必须匹配的部分分组。比如: <?php function example($role) { if($role == var1]) { return true; } else if(isset($var2) && !empty($var2)) { if($role

您可以直接在函数中传递变量,并生成如下内容: 函数示例($role,$var1=null,$var2=null,$var3=null){…}


然后检查是否为空

将一个条件与或一起使用,并将必须匹配的部分分组。比如:

<?php
function example($role) {   
  if($role == var1]) {
    return true;
  } else if(isset($var2) && !empty($var2)) {
    if($role == $var2) {
      return true;
    } else if(isset($var3) && !empty($var3)) {
      if($role == $var3){
        return true;
      } else {
        return false;
      }
    } 
  } 
}
我应该这样做。您也不需要检查
!空的
设置
,如果它不是空的,则设置为空。(例外情况是5个值
empty
为空)


我也会考虑在这里重新调整数据。如果您将所有
$var#
存储在一个数组中,您可以直接使用。

由于大多数条件将返回
true
,因此您可以对代码进行样式设置,并按如下方式对所有内容进行分组:

function example($role){    
    if($role == $var1 || (!empty($var2) && $role == $var2) || (!empty($var3) && $role == $var3)) {
        return true;
    }else{
        return false;
    }
}

您所说的
$var2未设置是什么意思?你是从一些超全局的,比如
$\u SESSION
还是
$\u POST
?$var1、$var2、$var3是SESSION变量
<?php
function example($role) {   
    if(
        (isset($var1) && !empty($var1) && $role == $var1) ||
        (isset($var2) && !empty($var2) && $role == $var2) ||
        (isset($var3) && !empty($var3) && $role == $var3)
    )
    {
        return true;
    }
    else
    {
        return false;
    }
}