com php-src: Add more tests that document late static binding: Zend/tests/lsb_023.phpt Zend/tests/lsb_024 .phpt

From: Date: Tue, 15 Dec 2020 09:04:39 +0000
Subject: com php-src: Add more tests that document late static binding: Zend/tests/lsb_023.phpt Zend/tests/lsb_024 .phpt
Groups: php.cvs 
Request: Send a blank email to php-cvs+get-114446@lists.php.net to get a copy of this message
Commit: c1e977f1bbd29bffc2404d96acc1dd7773aeea4a Author: jellyNoone <jelly.legend@gmail.com> Mon, 14 Dec 2020 23:03:12 +0100 Committer: Nikita Popov <nikita.ppv@gmail.com> Tue, 15 Dec 2020 10:04:39 +0100 Parents: f9942b061d980113193930b4e22b1e95bbec1c38 Branches: master Link: http://git.php.net/?p=php-src.git;a=commitdiff;h=c1e977f1bbd29bffc2404d96acc1dd7773aeea4a Log: Add more tests that document late static binding Closes GH-6515. Changed paths: A Zend/tests/lsb_023.phpt A Zend/tests/lsb_024.phpt Diff: diff --git a/Zend/tests/lsb_023.phpt b/Zend/tests/lsb_023.phpt new file mode 100644 index 00000000000..a8051aa85fe --- /dev/null +++ b/Zend/tests/lsb_023.phpt @@ -0,0 +1,26 @@ +--TEST-- +Late Static Binding static:: calls protected / public method of child class even then +the method is private in parent class +--FILE-- +<?php +class A { + public static function out() { + echo static::value(), PHP_EOL; + } + + private static function value() { return 'A'; } +} +class B extends A { + protected static function value() { return 'B'; } +} +class C extends A { + public static function value() { return 'C'; } +} +A::out(); +B::out(); +C::out(); +echo PHP_EOL; +--EXPECT-- +A +B +C diff --git a/Zend/tests/lsb_024.phpt b/Zend/tests/lsb_024.phpt new file mode 100644 index 00000000000..2c71c678d35 --- /dev/null +++ b/Zend/tests/lsb_024.phpt @@ -0,0 +1,25 @@ +--TEST-- +Late Static Binding static:: accesses protected / public static variables of child +class when the variable is private in parent class +--FILE-- +<?php +class A { + private static $value = 'A'; + + public static function out() { + echo static::$value, PHP_EOL; + } +} +class B extends A { + protected static $value = 'B'; +} +class C extends A { + public static $value = 'C'; +} +A::out(); +B::out(); +C::out(); +--EXPECT-- +A +B +C

« previous php.cvs (#114446) next »