缩短检查多个变量是不是为空的方式
Posted
技术标签:
【中文标题】缩短检查多个变量是不是为空的方式【英文标题】:Shorten the way multiple variables are checked if they are empty缩短检查多个变量是否为空的方式 【发布时间】:2019-10-11 00:17:52 【问题描述】:我正在检查 11 个变量是否为空,并在此基础上向数组添加一个值。变量不在数组中,如果可能的话,我想保留它们。
if (!empty($var1))
$Data[] = $var1;
else
$Data[] = ' - ';
if (!empty($var2))
$Data[] = $var2;
else
$Data[] = ' - ';
if (!empty($var3))
$Data[] = $var3;
else
$Data[] = ' - ';
是否有更好/更短的方法来完成上述操作?
【问题讨论】:
【参考方案1】:你可以使用三元运算符
如果你可以这样做,最好循环遍历你的变量:
使用三元运算符:
$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 : ' - ';
【讨论】:
我会使用最后一个示例,因为如果默认值存在差异,它最易读且易于维护。【参考方案2】:如果变量按顺序命名,您可以使用变量变量循环它们。
$i = 1;
while(isset($"var" . $i))
if (!empty($"var" . $i))
$Data[] = $"var" . $i;
else
$Data[] = ' - ';
$i++;
这意味着您不需要像接受的答案那样手动将它们添加到数组中,如果有一天会出现$var12
,那么此代码将自动添加。
查看实际代码:https://3v4l.org/240kA
【讨论】:
以上是关于缩短检查多个变量是不是为空的方式的主要内容,如果未能解决你的问题,请参考以下文章