| | | | |
| |||||||
| PHP-Fortgeschrittene Arbeiten mit PHP ohne Einschränkungen |
|
| | LinkBack | Themen-Optionen | Thema bewerten |
| | |
| PHP Code Flüsterer Registriert seit: 21.08.2005 Beiträge: 4682 PHP-Kenntnisse: Fortgeschritten | |
| | ||
| Erfahrener Benutzer Registriert seit: 28.07.2010
Beiträge: 1.721
PHP-Kenntnisse: Fortgeschritten ![]() ![]() ![]() ![]() | Was hier passiert, ist dass mit __get das Array $_SESSION['__registry']['foo'] als Kopie (return by value) zurückgegeben und dann modifiziert wird. Eine direkte Modifikation des Arrays ist so nicht möglich, es sei denn man bekäme es hin, __get mit return by reference arbeiten zu lassen, was IIRC nicht möglich ist. Ein Workaround aus dem PHP-Manual (PHP: Magic Methods - Manual 1. Kommentar): Zitat:
| |
| | |
| | |
| Neuer Benutzer Registriert seit: 22.08.2010
Beiträge: 16
PHP-Kenntnisse: Fortgeschritten ![]() | In deinem Fall würde sich ein ArrayAccess lohnen (und die Probleme lösen PHP-Code: PHP-Code: |
| | |
| | |
| Neuer Benutzer Registriert seit: 22.08.2010
Beiträge: 16
PHP-Kenntnisse: Fortgeschritten ![]() | Bis auf den Unterschied, dass er mit der Klasse eigene setter und getter für $_SESSION['__registry'] hat. Aber da macht seine Registry-Klasse genauso wenig Sinn, bis auf "->" statt "[]". Nebenbei sei noch gesagt, dass man in $_SESSION auch Indexe anlegen kann, auf die man nicht über "->" zugreifen kann. PHP-Code: Geändert von Murdoc (22.08.2010 um 22:34 Uhr). |
| | |
| | |
| moderatives Dielektrikum Registriert seit: 21.05.2008
Beiträge: 34.252
PHP-Kenntnisse: Fortgeschritten ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() | Ich kann die Absicht schon verstehen, es geht quasi um ein Namespacing für bestimmte Variablenbereiche. Das praktische ist, dass man das Zugriffsobjekt via Type Hinting einfordern kann (bzw. die Schnittstelle sicherstellen). Trotzdem halten sich die Vorteile gegenüber $_SESSION sehr in Grenzen.
__________________ -- One pixel is still too big. Please make it smaller. ASAP. Initiative Mittelstand. Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers. -- |
| | |
| | |
| moderatives Dielektrikum Registriert seit: 21.05.2008
Beiträge: 34.252
PHP-Kenntnisse: Fortgeschritten ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() | Kleines Update. Ich benutze seit längerem ein ähnliches Konstrukt (sozusagen „namespaced“ assoziierte Session-Teilstrukturen), um definierte Persistenzobjekte an Klassen übergeben zu können. Nach einigen negativen Erfahrungen in der Vergangenheit hatte ich mich bis dato auf 1-dimensionale Strukturen beschränkt. Zumindest objektseitig. Also: PHP-Code: PHP-Code: Jeder Set-Versuch der Art PHP-Code: Code: Notice: Indirect modification of overloaded element of ... has no effect ... on line 28
__________________ -- One pixel is still too big. Please make it smaller. ASAP. Initiative Mittelstand. Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers. -- Geändert von nikosch (25.08.2010 um 00:42 Uhr). |
| | |
|
| Themen-Optionen | |
| Thema bewerten | |
|
|
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| Zwei Arrays zusammenführen | chunky | PHP Tipps 2010 | 1 | 10.07.2010 17:58 |
| [Erledigt] Sortierung mehrerer Arrays | philosapiens | PHP Tipps 2010 | 16 | 08.06.2010 05:22 |
| mehrere Arrays gleichermaßen sortieren | maeck | PHP Tipps 2010 | 14 | 30.03.2010 08:28 |
| Schleifen Problem mit den Arrays - Logikproblem | <?PHP//Ahhhja?> | PHP Tipps 2010 | 4 | 28.03.2010 13:02 |
| Best Practise: Arrays unabhängig vom index zusammenfügen | lh_as | PHP-Fortgeschrittene | 1 | 16.03.2010 15:47 |
| inhalt eines problem - arrays kürzen bzw. einer variablen zuweisen | geuloth | PHP Tipps 2010 | 6 | 27.02.2010 18:05 |
| [Erledigt] Ausgabe zweier Arrays mit identischen Schlüsseln | litterauspirna | PHP Tipps 2009 | 6 | 13.12.2009 20:35 |
| [Erledigt] Mehere Arrays und nur 2 Werte aus jedem auslesen | litterauspirna | PHP Tipps 2009 | 3 | 07.05.2009 20:30 |
| [Erledigt] Sortieren von Arrays | Roflkid | PHP-Fortgeschrittene | 10 | 06.05.2009 22:48 |
| Mehrere Arrays summieren | buggybugga | PHP-Fortgeschrittene | 8 | 22.07.2008 11:51 |
| Arrays sortieren, Bezeichnung, Preis | Ticos | PHP Tipps 2006 | 4 | 07.09.2006 19:37 |
| [Erledigt] 2 Arrays miteinander vergleichen | PHP Tipps 2007 | 3 | 17.12.2005 16:54 | |
| Problem beim vergleichen von 2 Arrays | PHP Tipps 2005-2 | 1 | 06.10.2005 14:25 | |
| Erkennung von Arrays in Strings | PHP-Fortgeschrittene | 15 | 07.12.2004 13:00 | |
| Werte eines Arrays in eine MySQL schreiben | PHP Tipps 2004 | 2 | 28.06.2004 13:32 | |
| Besucher kamen über folgende Suchanfragen bei Google auf diese Seite |
| php mehrdimensionales array performance, php array overloading, \indirect modification of overloaded element of\, indirect modification of overloaded property, php zugriff auf mehrdimensionales array, magic __get mehrdimensionale arrays -ebay -test -testberichte -shop -preisvergleich, notice: indirect modification of overloaded property session, empty sessionregistry, php overloading, mehrdimensionale arrays klassen php, indirect modification of overloaded property session::$user has no effect, return zweidimensionales array, php \indirect modification of overloaded property\ \has no effect\ array, php offsetget returns array indirect modification element, php mehrdimensionales array public, overload array php, public static function array php, registry class ohne session php, php array overload, php multidimensional array mit variable zusammensetzen |