我正在检查11个变量是否为空,并基于此将一个值添加到数组。变量不在数组中,我想尽可能保留它们。
if (!empty($var1)) {
$Data[] = $var1;
} else {
$Data[] = ' - ';
}
if (!empty($var2)) {
$Data[] = $var2;
} else {
$Data[] = ' - ';
}
if (!empty($var3)) {
$Data[] = $var3;
} else {
$Data[] = ' - ';
}
是否有更好/更短的方法来完成上述操作?
答案 0 :(得分:4)
您可以使用三元运算符
如果可以的话,最好是遍历变量:
使用三元运算符:
$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 : ' - ';
答案 1 :(得分:2)
如果按这样的顺序命名变量,则可以使用变量变量循环它们。
$i = 1;
while(isset(${"var" . $i})){
if (!empty(${"var" . $i}))
{
$Data[] = ${"var" . $i};
} else {
$Data[] = ' - ';
}
$i++;
}
这意味着您不需要像接受的答案那样将它们手动添加到数组中,并且如果有一天出现$var12
,那么此代码将自动添加它们。
查看运行中的代码:
https://3v4l.org/240kA