Der-Dennis: PHP SQL Statements

Beitrag lesen

Hallo Rolf,

nein, das sollte keinen Unterschied machen. Die benannte Schreibweise mit dem Doppelpunkt ist nur besser lesbar und weniger Fehleranfällig, weil dann die Reihenfolge der Zuordnung keine Rolle spielt.

Siehe meine andere Antwort...

ich denke mal Du meinst diese Antwort. Rein theoretisch kann das schon sein, dass die "Fragezeichen-Methode" schneller sein könnte. Praktisch sollte das keinen oder einen nicht messbaren Unterschied machen. Man darf ja auch nicht vergessen, was da im Hintergrund noch so alles abläuft. Die heutigen Compiler und (Zwischen-)Caches machen auch immer wildere Sachen. Wenn man möchte, kann man das gerne untersuchen. Sinnvoll wird das i.A. nicht sein, wenn man nicht gerade nen Compiler o.ä. baut.

Mit der Argumentation („Das Fragezeichen als Platzhalter ist [...] einfacher zu parsen als :meinTollesFeld“) kann man übrigens auch dafür plädieren, dass man möglichst kurze Variablennamen verwenden sollte. $a ist theoretisch bestimmt auch schneller geparst als $meinTollesFeld. Und dann landet man schnell dabei, dass man auch einfach nur Einsen und Nullen schreiben könnte...

Ich hatte aber auch erst überlegt das anzumerken. Und mich dann dagegen entschieden: Erstens aus zuvor genannten Gründen. Zweitens sagte MB selbst, dass er sich häufig in solchen Dingen verheddert. Und es klang nicht so, dass er das immer toll findet. Und da ich denke, dass der Hinweis keinen wirklichen Mehrwert bietet und MB evtl. sogar das Leben erschwert, weil er sich zu sehr damit beschäftigt, hab ich es dann weggelassen. Man muss sich oder anderen das Leben ja nicht noch schwerer machen.

Dann hat er entweder keine Ahnung und/oder es nicht richtig erklärt oder bei Dir ist was falsches hängen geblieben. Oder von beidem etwas.

Oder er ist auch ein Mikrooptimierer. Hypothetisch könnte man ja sagen: "Ich mache die HTML Maskierung beim Schreiben in die Datenbank. Das passiert SELTEN. Beim Abrufen der Daten, was im Vergleich zum Schreiben HÄUFIG vorkommen sollte, bekomme ich fertig maskierte Daten geliefert und spare damit netto ein paar CPU Zyklen ein." Rein praktisch ist das natürlich falsch verstandener Umgang mit Kontexten und Sparen am falschen Ende :)

Mikrooptimierung ist ja nicht per se schlecht. Es gibt schließlich Anwendungen, wo man alles herausholen muss. Das weiß man dann aber vorher. Oder man findet tatsächlich einen problematischen Flaschenhals. Dann muss man auch kleine Optimierungen in Betracht ziehen. Aber erst dann und nicht vorher. Vorher zählt das von Dir Gesagte: Einfache Lesbarkeit und Wartungsfreundlichkeit.

Wenn man in Deinem Beispiel mal die Datenbank ausklammert (das wäre in den meisten Fällen wohl Unsinn) gibt es aber den beschriebenen Anwendungsfall bzw. die Vorgehensweise sogar recht häufig: Nennt sich Caching ;-) Und das ist kein falsch verstandener Umgang, halt nur ein anderes Themengebiet :-)

Gruß
Dennis