2016-10-31 1 views
2

Ok, also habe ich einen Block von Code in WordPress, der "ODER" Bedingungen innerhalb der "elseif" Anweisung hat. hier ist der Code:Gibt es eine Grenze für die Anzahl der ODER-Bedingungen, die ich in PHP eingeben kann?

<?php } elseif($index == 1 || $index == 8 || $index == 9 || $index == 16 || $index == 17 || $index == 20 || $index == 21) { ?> 

So ist der Code funktioniert gut, bis $index == 20 || $index == 21

Gibt es eine Grenze, wie oft ich || in der elseif-Anweisung verwenden kann?

+1

Es gibt keine Grenze, außer der Praktikabilität. –

+5

Keine Grenzen, aber einfachere Möglichkeiten, dies zu tun, wie zum Beispiel wenn (in_array ($ index, [1,8,9, ...])) –

+0

Danke @MarkBaker, ich werde es versuchen – MikeL5799

Antwort

3

Nein, es gibt keine Begrenzung von OR-Anweisungen in Ihrer if-Klausel. Beachten Sie, dass je mehr ORs Sie erhalten, die Lesbarkeit abnimmt. Es gibt IMMER eine bessere Lösung als nur mehr und mehr OPs hinzuzufügen.

Für Ihre obigen Beispiel eine bessere Lösung wäre zu prüfen, ob $ Index innerhalb einer Reihe von möglichen Werten wie ein so ist:

Statt

if ($index == 1 || $index == 2 || $index == 3) { /* ... */ } 

Sie

if (in_array($index, [1, 2, 3])) { /* ... */ } 
tun können
+0

Vielen Dank, dass ich das tat, aber die seltsame Eigenart eines Index nach 16 funktioniert immer noch nicht – MikeL5799

+1

Was meinst du damit? Es sollte für jede Art von Wert funktionieren. –

+0

Die Indizes werden ausgewählt, bis '' 'elseif (in_array ($ index, [17,21,25]))' '' – MikeL5799

3

Es gibt keine Grenze. Stellen Sie sicher, dass es lesbar ist.

2

Schauen Sie sich stattdessen die Funktion an. Auf diese Weise ist der Code oft kompakte und leichter zugleich zu lesen und zu verstehen:

if (in_array($id, [1, 8, 9, 16, 17])) 

http://php.net/manual/en/function.in-array.php

+0

Vielen Dank Ich habe das getan, aber die komische Eigenart eines Index nach 16 funktioniert immer noch nicht – MikeL5799

+1

@ MikeL5799 Das muss ein anderes Problem sein. Es gibt definitiv kein solches Limit. Bitte werfen Sie einen Blick in Ihre HTTP-Server-Fehlerprotokolldatei. Hier können Sie lesen, was das eigentliche Problem ist, wenn Sie einen PHP-Fehler bekommen. Wenn Ihr Code einfach nicht das tut, was Sie erwarten, liegt wahrscheinlich ein logischer Fehler vor. – arkascha

Verwandte Themen