doppeltes Anführungszeichen vs. einfaches Anführungszeichen top
Das einfache Anführungszeichen ist schneller als das doppelte.
Wir alle werden Quelltext, wie diesen, schon oft gesehen haben…
<?php
$username = "MrTest";
$passwort = "meinPW";
echo "Willkommen $username, viel Spaß auf der Seite!";
?>
$username = "MrTest";
$passwort = "meinPW";
echo "Willkommen $username, viel Spaß auf der Seite!";
?>
Dabei ersetzt PHP die Variablen durch ihren Inhalt. Diesen (unnötigen) Suchlauf kann man durch die einfachen Anführungszeichen umgehen…
<?php
$username = 'MrTest';
$passwort = 'meinPW';
echo 'Willkommen ' . $username . ', viel Spaß auf der Seite!';
?>
$username = 'MrTest';
$passwort = 'meinPW';
echo 'Willkommen ' . $username . ', viel Spaß auf der Seite!';
?>
Außerdem will ich selber kontrollieren können welche Variablen, denn nun, ausgegeben werden und nicht (aus versehen) etwas zu viel angezeigt wird…
Funktionsaufrufe in Schleifen top
Sollte man möglichst vermeiden. Viele Leute machen den Fehler, dass sie das (unbewusst) missachten…
In diesem Beispiel wird count bei jedem Schleifenlauf aufgerufen und muss jedes Mal die Größe des Arrays berechnen. Besser wäre es, wenn man count ein Mal vor der Schleife aufrufen würde…
In Bedingungen, das Schnellste zuerst top
So lässt sich das Ausführen des langsamen Bedingungsteils möglicherweise überspringen…
//falsch
if ( langsameFunktion() || schnelleFunktion() )
{
//mach was...
}
//richtig
if ( schnelleFunktion() || langsameFunktion() )
{
// wird aufgerufen, auch wenn nur schnelleFunktion true zurück gibt,
// so wird langsameFunktion (möglicherweise) gar nicht erst aufgerufen!
//mach was...
}
?>
if ( langsameFunktion() || schnelleFunktion() )
{
//mach was...
}
//richtig
if ( schnelleFunktion() || langsameFunktion() )
{
// wird aufgerufen, auch wenn nur schnelleFunktion true zurück gibt,
// so wird langsameFunktion (möglicherweise) gar nicht erst aufgerufen!
//mach was...
}
?>
Das Gleiche gilt auch für UND.
//falsch
if ( langsameFunktion() && schnelleFunktion() )
{
//mach was...
}
//richtig
if ( schnelleFunktion() && langsameFunktion() )
{
// wird aufgerufen, auch wenn nur schnelleFunktion false zurück gibt,
// so wird langsameFunktion (möglicherweise) gar nicht erst aufgerufen!
//mach was...
}
?>
if ( langsameFunktion() && schnelleFunktion() )
{
//mach was...
}
//richtig
if ( schnelleFunktion() && langsameFunktion() )
{
// wird aufgerufen, auch wenn nur schnelleFunktion false zurück gibt,
// so wird langsameFunktion (möglicherweise) gar nicht erst aufgerufen!
//mach was...
}
?>
Post- vs. Pre-In/Dekrementieren top
In C/C++ macht es auch keinen Unterschied welche Art man nun benutzt, da es “weg optimiert” wird, jedoch nicht in PHP. In PHP wird dies üblicherweise nicht optimiert und so macht es schon Sinn das das “Richtige” zu benutzten. Aber was ist denn nun das “Richtige”? Die Antwort lautet, natürlich Pre-In/Dekrementieren(++$i).
Denn das Post-In/Dekrementieren muss den alten Wert noch zwischenspeichern und wieder zurück geben, dies verursacht mehr Befehle, die es abzuarbeiten gilt.
Schlusswort top
Ich hoffe, dass dieser Artikel euch geholfen hat.
Wenn ihr noch mehr Möglichkeiten, zur Optimierung kennt, so zögert nicht ein Kommentar zu erstellen.