Hallo euch allen,

für den Anfang möchte ich mit einem Thema beginnen, welches unter den PHP Entwicklern schon die ein- oder andere hitzige Diskussion gestartet hat. Es geht um die Nutzung von einfachen gegenüber doppelten Anführungszeichen im PHP Quelltext:

$str = 'Dies ist ein String';
$str2 = "Dies ist ebenfalls ein String";

Wie viele von euch wissen (sollten) werden diese beiden Strings von PHP unterschiedlich interpretiert…

Während der String in den einfachen Anführungszeichen von PHP nicht angefasst werden, wird bei den doppelten Anführungszeichen versucht zu parsen!

Folgender code:

$i = 123;
echo "Der Wert von von i ist gleich: $i";

wird folgende Ausgabe produzieren:

Der Wert von i ist gleich: 123

Würde der gleiche Code nun mit einfachen statt doppelten Anführungszeichen geschrieben werden, so würde der tatsächliche Wert der Variable nicht ausgegeben werden. PHP parst also unsere Strings und ersetzt die vorkommenden Variablen mit ihren Werten – Genau so, als würden wir folgendes schreiben:

$i = 123;
echo 'Der Wert von i ist gleich: ' . $i;

Nun gibt es da natürlich eine große Frage – „Kosten die doppelten Anführungszeichen performance?“

Einfache Frage, einfache Antwort: Kaum, aber ja.

Allerdings möchte ich betonen das es hier zu unterschieden zwischen Windows und Linux Rechnern kommt! Führt ihr PHP auf einer Windows Maschine aus, so werden Strings mit doppelten Anführungszeichen schneller bearbeitet als bei einfachen. Bei Linux verhält es sich dagegen andersrum.

Die Unterschiede sind jedoch so minimal, das sie getrost außer Acht gelassen werden können – Wirklich.

Anschließend gibt es natürlich noch ein paar Zahlen, damit ihr euch ein eigenes Bild machen könnt.

// Die folgenden Zuweisungen wurden jeweils 10'000x Mal durchlaufen.

$str = 'String ' . $v1 . ' string ' . $v2;
// => Benötigt 0.0292 s

$str = "String $v1 string $v2";
// => Benötigt 0.0178 s

$str = "String {$v1} string {$v2}";
// => Benötigt 0.0178 s

$str = "String " . $v1 . " string " . $v2;
// => Benötigt 0.0176 s

Das dazugehörige Script könnt ihr euch hier selbst ansehen und lokal zum ausprobieren speichern.

7 comments on “Basics: Einfache vs. Doppelte Anführungszeichen

  • Ja , aber wie ist es dann mit $SERVER[‚REQUEST METHOD‘] == ‚POST‘
    $SERVER[„REQUEST METHOD“] == „POST“

    oder “ ‚GET‘ “ (verwendet man GET überhaupt ???)

    • Hey Dzyan, bitte beachte dass dieser Post mehr als 10 Jahre alt ist 🙂 Ich denke dieses Thema ist nicht mehr wirklich akkurat – es dürfte bei aktuellen PHP Versionen keinen Unterschied mehr machen 😉

      VG Leo

  • Wie sagte schon Morpheus:
    „Manche Dinge ändern sich,
    und manche Dinge ändern sich nie !“

    Das stimmt !

    Aber noch besser ist der dran, wer weiß, was sich ändert bzw. was sich nie ändert !

  • Dieser Artikel war ein sehr interessanter und informativer Beitrag. Ich bin Web-Entwickler und ich neige dazu, einfache Anführungszeichen zu benutzen, aber nach der Lektüre dieses Artikels weiß ich jetzt, dass doppelte Anführungszeichen die bessere Wahl ist. Was mich dennoch ein wenig verwundert, da der PHP Interpreter nicht im String nach Variablen suchen muss, das müsste doch normal schneller gehen.

    Danke für diesen informativen Artikel.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.