phpbar.de logo

Mailinglisten-Archive

[php] static member aufruf von einer Variable aus?

[php] static member aufruf von einer Variable aus?

Joerg Schoppet joerg at schoppet.de
Mit Aug 30 13:31:19 CEST 2006


Lutz Zetzsche wrote:
> Hallo Joerg,
>
> Am Dienstag, 29. August 2006 15:34 schrieb Joerg Schoppet:
>   
>> <code>
>> class example {
>>     public static $extender = 'input';
>> }
>>
>> $sClassName = 'example';
>>
>> echo $sClassName::$extender;
>> </code>
>>
>> Der funktioniert nicht, sondern wirft nur folgenden Fehler: "*Parse
>> error*: syntax error, unexpected T_PAAMAYIM_NEKUDOTAYIM".
>>     
>
> eine Möglichkeit wäre, eine Zugriffsmethode für die statische Variable 
> zu definieren und dann mit call_user_func darauf zuzugreifen:
>
> 	class example {
> 		private static $extender = 'input';
> 		public function getExtender() {
> 			return self::$extender;
> 		}
> 	}
> 	$sClassName = 'example';
> 	echo call_user_func(array($sClassName, 'getExtender'));
>
> Das wäre die sauberste Lösung, die mir gerade einfällt.
>
> Dinge, wie folgender Befehl, gehen natürlich auch, kommen aber nicht 
> ernsthaft in Frage:
>
> 	eval('echo '.$sClassName.'::$extender;');
>
>
> Viele Grüße
> Lutz
>   
Hi,

ja, ist mir auch schon eingefallen. Das "Problem" dabei ist jedoch, dass 
ich dann in jeder Kind-Klasse sowohl die Variable $extender definieren 
muss (dass ist ja logisch) und auch die get-methode jeweils neu 
implementieren muss, da "self" immer nur auf die Klasse zugreift, in der 
es definiert ist.

Dies entspricht aber dem schönen DRY-Prinzip. !?!

Jörg

php::bar PHP Wiki   -   Listenarchive