am 29. Dezember 2009
So das Jahr ist fast rum. Morgen wird es den letzten Beitrag 2009 geben. Da ich morgen einen kleinen Jahresrückblick vorbereitet habe, habe ich heute noch mal die Chance mich ein wenig über PHP aufzuregen. Ja genau: ein kleines „What the fuck“ zum Jahresende. Eigentlich ist es ein wtf über das ich mich schon eine Weile aufrege, habe aber heute erst Lust darüber zu schreiben.
Ihr wisst ja, dass ich ein Freund der statischen Code-Analyse bin. Ich habe auch schon einige Artikel über den PHP_CodeSniffer veröffentlicht. Leider macht es einem PHP immer mal wieder besonders schwer Code zu analysieren. Schwache Typisierung, mein Freund „mixed“ oder variable Variablen machen einem zum Beispiel oft einen Strich durch die Rechnung. Tja dass ich halt der Preis, den man sich erkauft hat und dafür eine schnell erlernbare Sprache entwickelt hat. Das passt schon irgendwie. Zumindest rege ich mich nicht mehr drüber auf.
Betrachten wir aber mal einen ganz einfachen Fall eines Sniff für den Code Sniffer. Finde mir alle kleingeschriebenen Konstanten. Ganz einfach? Naja ich würde sagen Konstanten sind einfach zu finden. Doch leider fällt mir da mindestens ein Fall ein, bei dem das absolut nicht klappt. Nehmen wir den folgenden Ausdruck:
$array[ersterEintrag] = "1";
Tja, ist ersterEintrag denn jetzt als String zu interpretieren oder ist es eine Konstante? Oder wenn es beides sein könnte, was nehme ich dann zuerst.
Ich finde es ja toll, dass eine Sprache Rücksicht auf uns Entwickler nimmt, aber das geht doch ein Stück zu weit. Warum ist es genau an dieser Stelle erlaubt einen String nicht in Anführungszeichen zu setzen? Was unterscheidet dies von allen anderen Anwendungsfällen? Ich würde sagen NICHTS! Ich tippe mal drauf, dass sich schon viele Fehler in Programmen eingeschlichen haben, weil irgendjemand die Konstante ersterEintrag definiert hat und damit alle Arrays kaputt gemacht hat. Wobei? Wenn man konsequent mies programmiert, dann könnte sich das Problem selbst rauskürzen. Egal. Tut mir den Gefallen und verwendet immer Anführungszeichen um eure Strings herum, denn sonst bekommt ihr eines Tages Besuch von mir und bekommt den Hintern versohlt.