Tag zusammen,
ich habe gerade ein Problem eine Variable aus einer Klasse "global" zu machen, ich bastel mal eben ein Beispiel zum besseren Verständnis.
Angenommen, die "fooclass" sieht ungefähr so aus
Soa, jetzt kann man ausserhalb aller Klassen per
auf die Variable "$foo" zugreifen, andererseits sollte man aus einer anderen Klasse heraus auch per
darauf zugreifen können.
Das Problem ist jetzt, das beide Zugriffsmethoden eine eigene Instanz der Klasse haben, was jedoch nicht gewünscht ist. Sie sollen beide auf die selbe Instanz zugreifen.
Kann mir irgendjemand sagen wo dabei mein Denkfehler liegt? Im Grunde sollte das doch so funktionieren, oder?
Vielen Dank schonmal im Vorraus.
*edit*
Kurz die Fehler dieses Beispiels gefixt.
ich habe gerade ein Problem eine Variable aus einer Klasse "global" zu machen, ich bastel mal eben ein Beispiel zum besseren Verständnis.
PHP:
class site {
// diese function macht nicht anderes, als einfach neue klassen hinzuzufügen
function class_load( $class ) {
[...]
$this->$class = &new $class( $this );
return $this->$class;
[...]
}
}
// der aufruf sieht dann z.b. so aus
$site = new site();
$site->class_load( 'fooclass' );
// und so wird dann darüber zugegriffen
$site->fooclass->bar();
PHP:
class fooclass {
var $foo = array();
function fooclass( &$s ) {
$this->site = &$s;
}
function bar( $var ) {
$this->foo[] = $var;
}
}
Soa, jetzt kann man ausserhalb aller Klassen per
PHP:
$site->fooclass->bar( 'argument' );
PHP:
$this->parent->fooclass->bar( 'another content' );
Das Problem ist jetzt, das beide Zugriffsmethoden eine eigene Instanz der Klasse haben, was jedoch nicht gewünscht ist. Sie sollen beide auf die selbe Instanz zugreifen.
Kann mir irgendjemand sagen wo dabei mein Denkfehler liegt? Im Grunde sollte das doch so funktionieren, oder?
Vielen Dank schonmal im Vorraus.
*edit*
Kurz die Fehler dieses Beispiels gefixt.
Zuletzt bearbeitet: