phpbar.de logo

Mailinglisten-Archive

[php] Variablenbehandlung in Objekten

[php] Variablenbehandlung in Objekten

Eric Binek ich at ericbinek.de
Mon Feb 7 16:50:19 CET 2005


Hi liste,

hab ein kleines Problemchen bei folgendem Script.

"Mutterobjekt" instanziert viele andere Objecte.

mit diesem Schema:

function m_construct() {
	switch( func_num_args() ) {
		case	1	:	$param	= func_get_arg( 0 );
					$object	= $param['object'];
					$name		= $param['name'];
					$class	= 'c_'.$object;
					if( class_exists($class) ) {
						$this->arr_objects[$object][$name] = new $class (&$this);
						return $this->arr_objects[$object][$name];
					}
					break;
		default	:		
					break;
	}
}

mit $this übergebe ich ja das Object an das nächste.
Funktioniert auch. Die Methode kann natürlich vom instanzierten Objekt  
aufgerufen werden und somit beliebig viele Unterobjekte bzw. Methoden  
eines anderen Objektes aufrufen.

jetzt zum Problem.

Das Array $this->arr_objects (z.B. $this->arr_objects['css']['layout'])  
ist nur in der jeweiligen Instanz sichtbar.
Wenn ich versuche aus dem Hauptobjekt bzw. einem beliebigen Unterobjekt  
eine Methode über dieses Array anzusprechen, kennt er plötzlich den index  
'css' nicht mehr. Aber im Unterobjekt 'xhtml' welches eine Instanz von  
'css' im $this->arr_objects des Hauptobjekt erstellt hat (siehe Quelltext  
oben) kann ich ohne probleme das Object  
$this->arr_objects['css']['layout'] ansprechen.

Gruß Eric




php::bar PHP Wiki   -   Listenarchive