假设有两个数组$a, $b
。在任何给定点,至少其中一个不是空的或两个都不是空的。
如何优化以下条件
if(!$a)
{
#TASK A
}
if(!b)
{
#TASK B
}
if ($a['item']<$b['item'])
{
#TASK A
}
else
{
#TASK B
}
我不希望任务A和B在程序中重复两次。
答案 0 :(得分:3)
if(!$a || ($b && ($a['item'] < $b['item']))){
// task A
}
else{
// task B
}
答案 1 :(得分:1)
if(!$a || ($b && ($a['item'] < $b['item']))){
// task A
}elseif(!$b || ($a && ($a['item'] >= $b['item']))){
// task B
}
如果可能未设置变量,请使用empty()
或isset()
答案 2 :(得分:0)
这可行,但可能不是最佳选择。但代码并不是很清楚。 TaskA和TaskB是否修改$ a和$ b?
$aDone = false;
$bDone = false;
if(!$a)
{
#TASK A
$aDone = true;
}
if(!b)
{
#TASK B
$bDone = true;
}
if ($a['item'] < $b['item'])
{
if (!$aDone)
{
#TASK A
}
}
else
{
if (!$bDone)
{
#TASK B
}
}