假設有兩個數組$a, $b
。在任何一點上,至少有一個不是空的,或者兩個都不是空的。優化if-else條件
如何我優化以下條件
if(!$a)
{
#TASK A
}
if(!b)
{
#TASK B
}
if ($a['item']<$b['item'])
{
#TASK A
}
else
{
#TASK B
}
我不想任務A和在程序中要被重複兩次乙。
假設有兩個數組$a, $b
。在任何一點上,至少有一個不是空的,或者兩個都不是空的。優化if-else條件
如何我優化以下條件
if(!$a)
{
#TASK A
}
if(!b)
{
#TASK B
}
if ($a['item']<$b['item'])
{
#TASK A
}
else
{
#TASK B
}
我不想任務A和在程序中要被重複兩次乙。
if(!$a || ($b && ($a['item'] < $b['item']))){
// task A
}
else{
// task B
}
+1更簡潔的回答:) –
if(!$a || ($b && ($a['item'] < $b['item']))){
// task A
}elseif(!$b || ($a && ($a['item'] >= $b['item']))){
// task B
}
如果變量不能設置,使用empty()
或isset()
感謝剛剛達到相同條件的作品:) – shanks
第二個'elseif'是多餘的。第一個條件已經涵蓋了任務a的斷言;因此,邏輯上,不是(任務a)==任務b。 –
這是可行的,但它可能不是最優的。但代碼並不十分清楚。 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
}
}
存在,或者是空的? –
我的意思是空的。編輯問題 – shanks
使用兩個函數? 'task_a();'和'task_b():'? – nickb