3 Stimmen

Welchen Vorteil bietet die Verwendung mehrerer Schritte zur Durchführung eines Wenn-Tests?

Welchen Vorteil hat die Verwendung mehrerer Schritte zur Prüfung von Variablen?

$VarLength = strlen($message);
if ($VarLength > 10)
    echo "Over Ten";

...im Gegensatz zur Zusammenfassung des gesamten Prozesses in einer if-Anweisung:

if ( strlen($message) > 10 )
    echo "Over Ten";

Ich frage mich, ob die Vorteile über den Code-Stil und die Möglichkeit der Wiederverwendung der Ergebnisse der (im obigen Beispiel) strlen Ergebnis.

4voto

hakre Punkte 184133

Ihre Frage ist technisch nicht wirklich zu beantworten, daher ist dies mehr ein Kommentar als eine Antwort.

Vorteile, die über den Code-Stil und die Wiederverwendung des Ergebnisses hinausgehen, ergeben sich, wenn Sie den Code ändern.

Möglicherweise möchten Sie die strlen() Funktion mit einer anderen Funktion, aber Sie wollen die Zeile mit der if Klausel, während Sie dies tun. Zum Beispiel, um Fehler oder Nebenwirkungen zu vermeiden. Das könnte ein Vorteil sein, aber es hängt irgendwie von der Art des Codes ab. Da Sie also den Codierungsstil aus Ihrer Frage ausklammern, ist sie schwer zu beantworten, da dieser Bereich viel damit zu tun hat, wie man Code schreiben kann/sollte/will/muss.

2voto

rdlowrey Punkte 38783

Wenn das Ergebnis einer Funktion mehrfach verwendet werden soll, sie sollte in einer Variablen zwischengespeichert werden, damit keine Ressourcen für die Neuberechnung des Ergebnisses verschwendet werden müssen .

Wenn das Ergebnis der Funktion nicht wiederverwendet wird, kann es einfach eine Frage der Lesbarkeit des Codes sein, deutlich zu machen, was passiert, indem man den Rückgabewert der Funktion in einer Variablen speichert, bevor man ihn in einer if Zustand.

Außerdem sollten Sie im Hinblick auf die Lesbarkeit immer geschweifte Klammern verwenden, auch wenn die PHP-Syntaxregeln dies nicht vorschreiben, wie @AlexHowansky erwähnt.

1voto

blo0p3r Punkte 6632

Das meiste davon ist im Stil des Codes enthalten. Was die Schnelligkeit der Ergebnisse angeht, ändert sich nicht viel. Wenn Sie $varLenght mehr als einmal verwenden, dann speichern Sie den Aufruf der Funktion, um die Länge zu erhalten. Aber selbst dann ist der Zeitunterschied extrem gering (ich würde sogar sagen, unmerklich).

Aber: Bei der Entwicklung von Anwendungen müssen Sie bedenken, dass Sie vielleicht nicht der Einzige sind, der später Änderungen daran vornimmt, oder dass Sie vielleicht nicht mehr ganz so frisch und auf dem neuesten Stand sind, was genau das Programm betrifft, das Sie schreiben. Je sauberer der Code ist, desto einfacher ist er zu warten, und DAS ist der Punkt, an dem man später viel Zeit spart.

1voto

Mr Griever Punkte 3974

Best Practice schreibt vor, dass Funktionen nur minimal aufgerufen werden sollten. In Ihrem Fall verstößt die Praxis nicht gegen die Regel, aber es ist nicht ungewöhnlich, Code wie zu finden:

if ( strlen($message) > 100 )
    echo "Over Ten";
else if ( strlen($message) > 20 )
    echo "Over Ten";
else if ( strlen($message) > 10 )
    echo "Over Ten";
...

Eine gängige Vorbeugung besteht darin, Funktionsergebnisse aus Gründen der Konsistenz immer einer Variablen zuzuweisen.

1voto

Alex Howansky Punkte 47344

Ich würde nicht sagen, dass es irgendeinen Vorteil gibt, abgesehen von dem von Ihnen bereits erwähnten Fall der Wiederverwendung. Ihr letzterer Fall ist besser lesbar, wahrscheinlich schneller und wahrscheinlich weniger speicherintensiv. I würde Wir empfehlen jedoch dringend, immer geschweifte Klammern zu verwenden, auch wenn die Bedingung nur eine Zeile lang ist:

if (condition) {
    statement;
}

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X