2016-04-27 4 views
0

Ich habe eine Menge von Legacy-Code wie folgt bekommen:Chaining ternären Operator in PHP

return isset($a) ? $a : isset($b) ? $b : isset($c) ? $c : isset($d) ? $d : isset($e) ? $e : ''; 

So ist es nur ternärer Operator verkettet. Es funktioniert, aber die meisten Variablennamen sind nicht $ a, aber $ sehrLangAndDescriptiveCorporateVariableNames und es ist nur für mich nicht lesbar.

Gibt es eine bessere Möglichkeit, dies zu refaktorisieren? Ich habe versucht, so etwas wie diese, aber ich weiß nicht, ob es die beste und lesbare Weise ist:

$ar = array(
     $a, 
     $b, 
     $c, 
     $d, 
     $e 
    ); 

    foreach ($ar as $k => $v) 
     if (isset($v)) 
      return $v; 
    return ''; 
+0

ich keinen Grund sehe für X Variablen zu überprüfen und dann den ersten vorhandenen verwenden. Scheint wie ein schlecht codiertes Skript für mich. –

Antwort

0

Es ist in Ordnung Arbeiten: -

$ar = array(
     $a, 
     $b, 
     $c, 
     $d, 
     $e 
    ); 

    foreach ($ar as $k => $v) 
    { 
     echo (isset($v)) ? $v : ''; 
    }