123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- --TEST--
- ZE2 Late Static Binding properties and methods declared as protected and overridden as public.
- --FILE--
- <?php
- class TestClass {
- protected static $staticVar;
- protected static function staticFunction() {
- return 'TestClassFunction';
- }
- public static function testStaticVar() {
- TestClass::$staticVar = 'TestClassStatic';
- ChildClass1::$staticVar = 'ChildClassStatic';
- return static::$staticVar;
- }
- public static function testStaticFunction() {
- return static::staticFunction();
- }
- }
- class ChildClass1 extends TestClass {
- public static $staticVar;
- public static function staticFunction() {
- return 'ChildClassFunction';
- }
- }
- class ChildClass2 extends TestClass {}
- echo TestClass::testStaticVar() . "\n";
- echo TestClass::testStaticFunction() . "\n";
- echo ChildClass1::testStaticVar() . "\n";
- echo ChildClass1::testStaticFunction() . "\n";
- echo ChildClass2::testStaticVar() . "\n";
- echo ChildClass2::testStaticFunction() . "\n";
- ?>
- --EXPECT--
- TestClassStatic
- TestClassFunction
- ChildClassStatic
- ChildClassFunction
- TestClassStatic
- TestClassFunction
|