首页 > 解决方案 > 缩短检查多个变量是否为空的方式

问题描述

我正在检查 11 个变量是否为空,并在此基础上向数组添加一个值。变量不在数组中,如果可能的话,我想保持这种状态。

if (!empty($var1)) {
  $Data[] = $var1;
} else {
  $Data[] = ' - ';
}

if (!empty($var2)) {
  $Data[] = $var2;
} else {
  $Data[] = ' - ';
}

if (!empty($var3)) {
  $Data[] = $var3;
} else {
  $Data[] = ' - ';
}

有没有更好/更短的方法来完成上述操作?

标签: phpif-statementwhile-loop

解决方案


您可以使用三元运算符

如果你可以这样做,最好的办法是遍历你的变量:

使用三元运算符:

$variables = [ $var1, $var2, $var3 ]
foreach ($variables as $var){
    $Data[] = !empty($var) ? $var: ' - ';
}

使用 if/else 语句:

$variables = [ $var1, $var2, $var3 ]
foreach ($variables as $var){
    if( !empty($var) ){
        $Data[] = $var;
    }else{
        $Data[] = ' - ';
    }

}

但是,如果您不能并且仍然想为每个变量单独执行此操作:

$Data[] = !empty($var1) ? $var1 : ' - ';
$Data[] = !empty($var2) ? $var1 : ' - ';
$Data[] = !empty($var3) ? $var1 : ' - ';

推荐阅读