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!";
?>

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!';
?>

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…

<?php
for($i=0; $i < count($meinArray); ++$i)
{
  echo $i;
}
?>

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…

<?php
$len = count($meinArray);
for($i=0; $i < $len; ++$i)
{
  echo $i;
}
?>

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...
}
?>

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...
}
?>

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.