2011-01-10 4 views
18

Was ist der Unterschied zwischenPhp: Was ist der Unterschied zwischen while ... endwhile; und während {// Sachen hier}

while (expression): 

// do stuff 

endwhile; 

und

while { 

} 
+5

Die alternative Syntax kann die Bearbeitung erschweren, da sie in IDEs keine Klammeranpassung ermöglicht. – webbiedave

+0

Können Sie etwas weiter erklären? – redconservatory

+0

weitere Erklärung: Programmierung Texteditoren werden in der Regel die Standard-Syntax geschweiften Klammern '{...}' markieren, wenn der Cursor über eine Klammer ist, so dass die Anweisung Blöcke und Kontrollfluss einfach zu identifizieren ist. Die alternative Syntax kann ärgerlich sein, wenn es viele verschachtelte Kontrollstrukturen und schlechte Einrückungen gibt. – agtb

Antwort

31

Es gibt keinen funktionalen Unterschied. Ich

In der Praxis finden, dass:

while (expression): 
// do stuff 
endwhile; 

besser lesbar für die Designer, wenn Sie PHP-Code in HTML einbetten. IE: Die

<? while ($cssClass = array_pop($array)): ?> 
    <li class="<?=$cssClass?>"> 
<? endwhile; ?> 

:

while { 

} 

lesbarer innerhalb eines PHP-Code-Block ist.

+0

Sie können sogar reines HTML zwischen den Klammern {} hinzufügen, während {?> Ihr tolles HTML

6

Es gibt keinen Unterschied, es kommt auf die persönlichen Vorlieben.

2

Es gibt keinen wirklichen Unterschied beim Schreiben von Code.

Unter besonderen Umständen kann es einen Unterschied in den Komfortniveaus geben. Angenommen, Sie schreiben eine Vorlagen-Engine, die Vorlagencode in nativen PHP-Code umwandelt, der dann im Cache gespeichert und direkt auf Geschwindigkeit ausgeführt wird.

In diesem Fall ist die Tatsache, dass while ... endwhile; vermeiden Klammern verwenden können Sie erlauben, Ihren Parsing-Algorithmus zu vereinfachen, wenn z.B. Es erkennt Variablen, die durch eine Syntax wie {$var} ersetzt werden sollen, die ebenfalls geschweifte Klammern verwendet.

Natürlich ist dies ein ziemlich kleiner Vorteil in einer wirklich außergewöhnlichen Situation, aber Sie nehmen, was Sie können. :)

2

Der Unterschied ist vernachlässigbar, wenn der Code tatsächlich ausgeführt wird, aber beim Codieren finde ich, dass die Eingabe der Klammern ist (1): schneller, (2): konventioneller und (3): weniger Wahrscheinlichkeit von Fehler (endwhle jemand?).

Als Bonus, den Editor ich Auto-Formate die While-Schleifen (mit Klammern, standardmäßig) und die Straße hinunter, wenn etwas aus ist, wird die integrierte Klammer-Matching-Funktion es fangen.

Verwandte Themen