mirror of
https://github.com/php/php-src.git
synced 2026-03-24 00:02:20 +01:00
Move more low-hanging fruit, creating new directories for the tests for: * comparisons * dynamic calls * error messages * `error_reporting()` * exceptions * `foreach()` * garbage collection * group `use` statements * heredoc and nowdoc * `goto` jumps * late static binding * magic methods * namespaces * numeric literal separators * objects * `settype()` * cleaning of temporary values * `unset()` Additionally, move some tests into the existing subdirectory for `list()` tests. Drive-by fixes of some test numbers in the names of the `goto` tests. Work towards GH-15631
49 lines
1.1 KiB
PHP
49 lines
1.1 KiB
PHP
--TEST--
|
|
ZE2 Late Static Binding properties and methods declared as public and overridden as public.
|
|
--FILE--
|
|
<?php
|
|
class TestClass {
|
|
public static $staticVar;
|
|
|
|
public 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
|