Der Martin: HIER DIE LÖSUNG!

Beitrag lesen

Hi,

und was soll die sinnfreie, nein, sogar kontraproduktive Umkopiererei?
mal so eine Frage an die Profis: ist das eigentlich in PHP wirklich kontraproduktiv (insbesondere im Hinblick auf Performance)?

im Hinblick auf die Performance mag das Umkopieren vielleicht sogar einen leichten Vorteil bieten.

Ich würde unüberlegt mit JA antworten, sofern die Variable einmal oder zweimal angesprochen wird. Aber genau so gibt es z.B. im Bereich Java viele Stimmen die sagen, anstatt mehrfach (insbesondere in Schleifen) auf das selbe Array-Element zuzugreifen möge man eine lokale Variable verwenden.

Es gibt aber einen gravierenden Unterschied. Java ist eine compilierte Sprache. Die Adresse einer einfachen (zumal lokalen) Variablen ist dabei zur Laufzeit des Programms bekannt, während der Zugriff auf ein Array immer die Berechnung des Adress-Offsets aus dem Index erfordert (wenn's der Compiler nicht optimieren kann). In PHP wird dagegen die Adresse einer Variablen im Speicher bei jedem Zugriff über den Namen neu gesucht. Da ist es dann unerheblich, ob ich auf ein Array/Objekt/assoziatives Array oder über eine einfache Variable zugreife.

[...] aber in Anbetracht der wiederholt auftauchenden Aussagen in Richtung "kontraproduktiv" würde ich das doch gerne mal abhaken...

"Kontraproduktiv" ist hier nicht im Bezug auf die Performance zu sehen, sondern auf die Verständlichkeit des Codes: Wenn im PHP-Code irgendwo $_GET oder $_POST auftauchen, dann weiß man sofort: Achtung, Benutzereingaben! An den Namen der kopierten oder referenzierten Variablen sieht man das nicht mehr so deutlich.

So long,
 Martin

--
"Drogen machen gleichgültig."
 - "Na und? Mir doch egal."