3

2つの配列があるとします$a, $b。任意の時点で、それらの少なくとも1つが空でないか、両方が空ではありません。

次の条件を最適化するにはどうすればよいですか

if(!$a)
{
  #TASK A
}
if(!b)
{
  #TASK B
}

if ($a['item']<$b['item'])
{
   #TASK A
}
else
{
  #TASK B
}

プログラムでTASKAとBを2回繰り返さないようにします。

4

3 に答える 3

3
if(!$a || ($b && ($a['item'] < $b['item']))){
// task A
}
else{
// task B
}
于 2013-01-22T15:34:22.673 に答える
1
if(!$a || ($b && ($a['item'] < $b['item']))){
  // task A

}elseif(!$b || ($a && ($a['item'] >= $b['item']))){
  // task B
}

変数が設定されていない可能性がある場合は、empty()またはを使用してくださいisset()

于 2013-01-22T15:25:02.420 に答える
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
   }
}
于 2013-01-22T15:31:21.843 に答える