![]() |
[PHP] Klasseninstanzen in PHP
Morgen. Ich erzeuge mir eine Klasse, und will im Konstruktor eine Referenz auf die Instanz in ein globales Array speichern, in etwa so:
Code:
Das wäre jetzt meine Idee gewesen. Funktioniert aber nicht. Die =& Anweisung hat überhaupt keinen Effekt. Wenn ich statt =& schreibe = funktioniert es zwar scheinbar, aber ich habe ein Kopie und keine Referenz.
global $objects;
class MyClass { public $title; function MyClass($title) { $this->title=$title; $GLOBALS["objects"][$title]=&$this; } } |
Re: [PHP] Klasseninstanzen in PHP
Was bitte willst du denn da machen? Ich versteh denn Sinn davon nicht ganz :gruebel: :-D
mfG, titus |
Re: [PHP] Klasseninstanzen in PHP
Sollte der Konstruktor nicht __construct($title) heissen?
|
Re: [PHP] Klasseninstanzen in PHP
Naja in PHP5 aber in PHP4 ging es noch so:
new MyClass(...); mfG, titus |
Re: [PHP] Klasseninstanzen in PHP
Also der Konstruktor wird zumindest aufgerufen. Soweit scheints noch zu passen.
Ich will einfach, dass bei der Instantiierung der Klasse ein Pointer auf die Instanz in ein globales Array gespeichert wird. Der Grund ist, dass ich die Instanzen der Klasse verwalten will. |
Re: [PHP] Klasseninstanzen in PHP
Zitat:
![]() |
Re: [PHP] Klasseninstanzen in PHP
Also bei mir funktioniert beides, mit und ohne Referenzierung mit &.
Code:
Beidesmal spuckt mir das Script:
<?php
header('Content-type: text/plain'); $objects = array(); class MyClass { public $title; function MyClass($title) { $this->title = $title; $GLOBALS['objects'][$title] = $this; # bzw. &$this } } $myobj = new MyClass('A'); # Objekt verändern $objects['A']->title = 'B'; # Objekt-Eigenschaften ausgeben echo $myobj.': '.$myobj->title."\r\n"; echo $objects['A'].': '.$objects['A']->title; ?> Object id #1: B Object id #1: B aus. Mich würde aber trotzdem mal interessieren, was bei der Zuweisung von $this nun eigentlich passiert. In Delphi hätte ich jetzt gesagt: Ist doch klar, $this ist ja schon ein Zeiger auf das Objekt, deswegen braucht man das auch nicht zu referenzieren... In PHP bin ich mir grad nicht so sicher :gruebel:. |
Re: [PHP] Klasseninstanzen in PHP
Das Handbuch hilft schonmal weiter :-), zumindest wenn man auch den letzten Kommentar von aib liest.
Zitat:
|
Re: [PHP] Klasseninstanzen in PHP
Ja, und? Mein Problem bleibt trotzdem bestehen. Mein Code sieht ja in etwa so aus:
$a = new a(); Jetzt will ich, dass im Konstruktor eine Referenz auf das erzeugte Objekt in das Array gespeichert wird. |
Re: [PHP] Klasseninstanzen in PHP
Ja, und?
Code:
Happy? Ich glaub dass du mit dem $this-Operator nicht so einfach & verwenden kannst.
$a = new a();
$objects[] = &$a; Greetz alcaeus PS: Es ist = &$a, und nicht =& $a. Das & gehoert zu $a, und nicht zum =. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:52 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz