phpbar.de logo

Mailinglisten-Archive

[php] OOP und static Functions

[php] OOP und static Functions

mailing-php at stefansturm.de mailing-php at stefansturm.de
Don Jan 25 10:49:45 CET 2007


Hallo zusammen,

ich habe da ein OOP Problem ;-(

Ich hätte gerne folgende Klassen:

class foo
{
	public static $_fooBar = 'varFoo';
	
	public static function doFoo()
	{
		// Problem 1:
		echo self::$_fooBar;
		
		// Problem 2:
		echo get_class( self );
	}
	
}


class bar extends foo 
{
	public static $_fooBar = 'varBar';
	
}

Nun rufe dich die Funktion doFoo der Klasse bar auf:
bar::doFoo();

Dabei hätte ich dann gerne folgende Ausgaben.

Problem1:
varBar

Problem2:
bar

Erklärungen:
Problem1:
Die Variable $_fooBar kann in den Klassen, die foo erweitern wahlweise überschrieben werden. Muss aber nicht. Ich bekomme hier als Ausgabe immer "varFoo", also den Wert der Basisklasse.

Problem2:
Hier hätte ich gerne den Namen der Klasse, die foo erweitert. Denn von dieser habe ich ja auch die Funktion doFoo() aufgerufen. Ich weiß, das get_class garnicht geht, da es als Parameter ein Objekt benötigt. Steht da auch nur als Platzhalter.

Kann mir da jemand weiterhelfen? Gibt es da überhaupt eine Möglichkeit soetwas zu lösen?

Danke schon mal für eure Hilfe,
Stefan Sturm

php::bar PHP Wiki   -   Listenarchive