{ return static::staticFunction(); } } class ChildClass1 extends TestClass { protected static $staticVar = 'ChildClassStatic'; const CLASS_CONST = 'ChildClassConst'; protected static function staticFunction() { return 'ChildClassFunction'; } } class ChildClass2 extends TestClass { } $testClass = new TestClass(); $childClass1 = new ChildClass1(); $childClass2 = new ChildClass2(); echo $testClass->testStaticVar() . "\n"; echo $testClass->testClassConst() . "\n"; echo $testClass->testStaticFunction() . "\n"; echo $childClass1->testStaticVar() . "\n"; echo $childClass1->testClassConst() . "\n"; echo $childClass1->testStaticFunction() . "\n"; echo $childClass2->testStaticVar() . "\n"; echo $childClass2->testClassConst() . "\n"; echo $childClass2->testStaticFunction() . "\n"; ?> ==DONE==
return static::CLASS_CONST; } public static function testStaticFunction() { return static::staticFunction(); } } class ChildClass1 extends TestClass { protected static $staticVar = 'ChildClassStatic'; const CLASS_CONST = 'ChildClassConst'; protected static function staticFunction() { return 'ChildClassFunction'; } } class ChildClass2 extends TestClass { } echo TestClass::testStaticVar() . "\n"; echo TestClass::testClassConst() . "\n"; echo TestClass::testStaticFunction() . "\n"; echo ChildClass1::testStaticVar() . "\n"; echo ChildClass1::testClassConst() . "\n"; echo ChildClass1::testStaticFunction() . "\n"; echo ChildClass2::testStaticVar() . "\n"; echo ChildClass2::testClassConst() . "\n"; echo ChildClass2::testStaticFunction() . "\n"; ?> ==DONE==