Wie reduziere ich die Anzahl der if-else-Anweisungen in PHP?

7

Ich habe festgestellt, dass es viele if-else-Anweisungen gibt, insbesondere verschachtelte if else-Anweisungen, diese Anweisungen machen meinen Code weniger lesbar. Wie reduziere ich die Anzahl der if else-Anweisungen in PHP?

Meine Tipps sind wie folgt: 1. Verwenden Sie eine switch-Anweisung, wenn es geeignet ist; 2.use exit () - Anweisung, wenn es machbar ist; 3. Verwenden Sie eine ternäre Anweisung, wenn dies machbar ist;

Gibt es andere Tipps, die if else-Anweisungen reduzieren können, insbesondere verschachtelte if-else-Anweisungen?

    
Steven 26.11.2009, 15:04
quelle

6 Antworten

17

Refaktorieren Sie Ihren Code in kleinere Arbeitseinheiten. Zu viel bedingte Logik ist ein Code-Geruch und zeigt normalerweise an, dass Ihre Funktion refaktoriert werden muss.

    
Jeff Paquette 26.11.2009, 15:08
quelle
19

Versuchen Sie, möglichst früh "zurückzukehren", um die Verschachtelungstiefe zu reduzieren. Versuchen Sie, die Auswertung boolescher Ausdrücke zu verwenden.

Beispiel:

%Vor%

Sie könnten das wie folgt umschreiben:

%Vor%     
Max 26.11.2009 15:21
quelle
9

Es gibt eine offizielle akademische Methode, um viele if -Bedingungen, die Karnaugh Mapping genannt werden, zu refaktorieren und zu vereinfachen.

Es nimmt mehrere Testbedingungen an und versucht, bei der Erstellung vereinfachter if -Anweisungen zu helfen, die alle erforderlichen Fälle abdecken.

Sie können mehr darüber im Wiki hier erfahren.

    
iWantSimpleLife 30.09.2011 02:20
quelle
3

Benutze den ternären Operator, korrigiere deinen Code, schreibe eine Funktion oder eine Klasse, die alle notwendigen if else-Anweisungen erledigt.

    
streetparade 26.11.2009 15:11
quelle
1

Polymorphismus könnte auch einige loswerden, obwohl es schwieriger ist, if / else in PHP zu implementieren, da es nicht typsicher ist ...

    
NDM 26.11.2009 15:20
quelle
1

Ich arbeite an einer Menge Code, der voller sich ständig weiterentwickelnder Geschäftslogik ist und jeden zweiten Tag geändert werden muss. Zwei Tipps, die mir geholfen haben, mit den Änderungen Schritt zu halten, sind: Vermeiden Sie alle anderen Anweisungen und kehren Sie so schnell wie möglich zurück. Niemals in tiefe Verschachtelung geraten - & gt; Unterroutinen / Funktionen erstellen.

Wenn Sie alle anderen Anweisungen durch negierte if-Anweisungen ersetzen, wird Ihr Code viel einfacher von oben nach unten gelesen (die Nähe der Bedingung und des Codeblocks):

%Vor%

Zweitens, Rückkehr / Ausfahrt so bald wie möglich. Meine Meinung natürlich, aber ich sehe nicht den Sinn darin, irgendwelche zusätzlichen Bedingungen / Tests zu durchlaufen, wenn Sie das Ergebnis der Subroutine bereits bestimmt haben, besonders wenn Sie den Code von oben nach unten lesen möchten. Entfernen aller Mehrdeutigkeiten macht die Dinge einfacher.

Abschließend möchte ich vermeiden, besonders in langen Listen von BL zu verwenden. Kehren Sie zurück, sobald Sie das Ergebnis wissen. Wenn die Verschachtelungsebene größer als 2 ist, erstellen Sie Unterroutinen / Funktionen.

    
smassey 01.10.2011 15:41
quelle