xref: /PHP-7.4/Zend/tests/lsb_019.phpt (revision d7a3edd4)
1--TEST--
2ZE2 Late Static Binding properties and methods declared as protected and overridden as public.
3--FILE--
4<?php
5class TestClass {
6	protected static $staticVar;
7
8	protected static function staticFunction() {
9		return 'TestClassFunction';
10	}
11
12	public static function testStaticVar() {
13		TestClass::$staticVar = 'TestClassStatic';
14		ChildClass1::$staticVar = 'ChildClassStatic';
15		return static::$staticVar;
16	}
17
18	public static function testStaticFunction() {
19		return static::staticFunction();
20	}
21}
22
23class ChildClass1 extends TestClass {
24	public static $staticVar;
25
26	public static function staticFunction() {
27		return 'ChildClassFunction';
28	}
29}
30
31class ChildClass2 extends TestClass {}
32
33echo TestClass::testStaticVar() . "\n";
34echo TestClass::testStaticFunction() . "\n";
35
36echo ChildClass1::testStaticVar() . "\n";
37echo ChildClass1::testStaticFunction() . "\n";
38
39echo ChildClass2::testStaticVar() . "\n";
40echo ChildClass2::testStaticFunction() . "\n";
41?>
42--EXPECT--
43TestClassStatic
44TestClassFunction
45ChildClassStatic
46ChildClassFunction
47TestClassStatic
48TestClassFunction
49