PHP Coding Standard

Logo: PHP
34. Empfehlung 6: Keine Anführungsstriche bei String-Deklarationen

Oft werden zur Ausgabe und Definition von Strings Anführungsstriche anstatt Hochkommata verwendet. Das sollte man sich sehr gut überlegen, denn es bietet potentielle Gefahren beim Refactoring.

Ungültig
   echo "This value $important_value should be a string.";
   // is replaced by
   echo "This value $config['important_value'] should be a string.";

Hier wird eine Variable duch einen Array ersetzt. Nehmen wir an, das muss in 50 Skripten gemacht werden, was mit einem guten Editor kein Problem ist; suchen, ersetzen und abspeichern. Nach der Aktion wird nur keins der betroffenen Skripte mehr funktionieren, weil die letzte Zeile im Beispiel einen Fehler erzeugt. Dieses kann sehr leicht durch den Einsatz von Hochkommata und dem Verkettungsoperator (siehe auch Zeichenketten-Operatoren) verhindert werden.

Gültig
   echo 'This value ' . $important_value . ' should be a string.';
   // is replaced by
   echo 'This value ' . $config['important_value'] . ' should be a string.';

Das Beispiel für gültigen Code erzeugt keinen Fehler und ist auch für zukünftige Änderungen gerüstet. Denkbar ist beispielsweise, dass der Array durch eine Konstante ersetzt wird. Ein zusätzlicher Vorteil liegt darin, dass die Strings jetzt nicht mehr geparst werden.

Bei der ungültigen Variante, würde der Austausch von "$important_value" in "IMPORTANT_VALUE" (Konstante) keine Fehlermeldung erzeugen, aber die Logik des Skripts wäre nicht mehr intakt. Der Inhalt von "IMPORTANT_VALUE" würde jetzt nicht mehr ausgegeben werden, weil es innerhalb der Anführungsstriche für PHP ein String und keine Konstante mehr wäre.

Refactoring ist etwas absolut Wesentliches für eine erfolgreiche Programmierung und qualitativ hochwertigen Source-Code. Also keine Anführungsstriche bei String-Deklarationen verwenden, sondern Hochkommata in Verbindung mit dem Verkettungsoperator.