2016-08-21 1 views
0

Ist es möglich, diesen Ausdruck auf eine Zeile zu reduzieren?PHP Refactoring kleine Funktion

echo '<li>'; 
    echo $value['name']; 
    if ($value['childs']) { 
     echo '<ul>'; 
     echo $this->arrayToString($value['childs']); 
     echo '</ul>'; 
    } 
    echo '</li>'; 

Zum Beispiel:

echo '<li>' . $value['name'] // what to do if statement? ... ; 

Antwort

0

Es deffinitely möglich ist:

echo '<li>' . $value['name'] . ($value['childs'] ? '<ul>' . $this->arrayToString($value['childs']) . '</ul>' : '') . '</li>'; 

Aber ich es nicht wirklich empfehlen. Ich werde viel weniger lesbar sein. Vielleicht versuchen, einen Teil zu einer anderen Funktion wie folgt zu extrahieren:

function printItem($value) 
{ 
    echo '<li>' . $value['name'] . $this->printItemChilds($value) . '</li>'; 
} 

function printItemChilds($value) 
{ 
    return $value['childs'] ? '<ul>' . $this->arrayToString($value['childs']) . '</ul>' : ''; 
} 
+0

Danke Thomas! Du hast mir wirklich geholfen. –