Hallo ChrisB und danke für deine Antwort!
Speziell allerdings würde mich interessieren, ob Konzepte (und die daraus resultierenden Probleme) wie die Scope Chain auch in PHP existieren.
Nein. PHP möchte, dass du ganz genau sagst, auf Eigenschaften welchen Objektes du zugreifst - es gibt dort einfach keine "chain", in welcher man weiter nach oben gehen könnte, wenn man im aktuellen scope das Gesuchte nicht findet.
Ich glaube, da hast du mich missverstanden – oder ich mich falsch ausgedrückt. Laut dem Video ist es in JavaScript so, dass beim Ausführen einer Funktion die sogenannte Scope Chain zusammengesetzt wird. An deren Ende befinden sich globale Variablen, weiter vorne in der Kette befinden sich lokale Variablen/Objekte, welche in der Funktion definiert wurden.
Dies hat zur Folge, dass der Zugriff auf lokale Variablen erheblich schneller ist als der Zugriff auf globale Variablen, weshalb im Video empfohlen wird, bereits wenn man mehr als zwei Mal auf eine globale Variable zugreifen muss, diese in einer lokalen Variablen zwischenzuspeichern, um so schneller auf die Daten zugreifen zu können.
Und damit hätte ich auch eine ganz konkrete Frage: Gilt dies auch für PHP? Meist wird ja von Konstrukten wie $user = $_GET['user']
abgeraten, da dann die Herkunft der Daten nichtmehr offensichtlich ist. Doch sollte es etwas mit der JavaScript-Scope Chain vergleichbares in PHP auch geben, dann wäre der Zugriff auf $user
ja schneller als der auf die superglobale $_GET
.
Und wenn nicht, anhand welcher Stichworte ich mich über Gleichwertiges für PHP informieren kann.
Gleichwertig zu was?
Etwas Gleichwertiges zur JavaScript-Scope Chain, falls nicht die JavaScript-Regeln gelten.
Wenn hier allerdings nicht noch jemand kommt, der doch Vergleichbarkeiten findet - dann solltest du auch hier die Frage noch mal konkretisieren; exakter beschreiben, woran genau du nun hinsichtlich PHP und Performance (und ihrer möglichen Optimierung) interessiert bist.
Nun, im Video wird beispielsweise gesagt, der Zugriff auf Eigenschaften von Objekten und Array-Elemente sei wesentlich langsamer als der normale Variablenzugriff. Oder es wird von der Verwendung von foreach abgeraten … nur eben alles bezogen auf JavaScript.
Ein konkretes Optimierungsproblem habe ich nicht, dafür arbeite ich in zu kleinen Maßstäben. Aber Interesse an der Thematik allgemein habe ich eben dennoch – soll eben auch „sauber“ sein.
Gruß,
Claudius