CGollhardt
Mitglied
Hallo Miteinander,
ich sitze vor einem ziemlich großen Problem gerade. Und zwar möchte ich im Child einer Klasse Statische Fields des Parents bearbeiten.
Erwartet: 42, 43, 44
Erhalten: 44, 44, 44
Irgendwie beziehen sich die static Fields auf die Parent Klasse?
Was ich halt erreichen will, ist nicht über ein Interface zu gehen, damit die Field private bleiben können. Und abstrakte statische Methoden enden mit einem Strict Error.
Weis jemand von euch Rat?
ich sitze vor einem ziemlich großen Problem gerade. Und zwar möchte ich im Child einer Klasse Statische Fields des Parents bearbeiten.
PHP:
<?php
interface StaticInitializier {
public static function StaticInit();
}
abstract class ParentClass implements StaticInitializier {
protected static $_foo;
public static function Test() {
echo '<p>' . static::$_foo . '</p>';
}
}
class FirstClass extends ParentClass {
public static function StaticInit()
{
self::$_foo = '42';
}
}
FirstClass::StaticInit();
class SecondClass extends ParentClass {
public static function StaticInit()
{
self::$_foo = '43';
}
}
SecondClass::StaticInit();
class ThirdClass extends ParentClass {
public static function StaticInit()
{
self::$_foo = '44';
}
}
ThirdClass::StaticInit();
FirstClass::Test();
SecondClass::Test();
ThirdClass::Test();
?>
Erwartet: 42, 43, 44
Erhalten: 44, 44, 44
Irgendwie beziehen sich die static Fields auf die Parent Klasse?
Was ich halt erreichen will, ist nicht über ein Interface zu gehen, damit die Field private bleiben können. Und abstrakte statische Methoden enden mit einem Strict Error.
Weis jemand von euch Rat?