mirror of
https://github.com/php/php-src.git
synced 2024-12-02 22:34:55 +08:00
a555cc0b3d
Remove most of the `===DONE===` tags and its variations. Keep `===DONE===` if the test output otherwise becomes empty. Closes GH-4872.
54 lines
782 B
PHP
54 lines
782 B
PHP
--TEST--
|
|
Bug #37212 (Access to protected property of common base class)
|
|
--FILE--
|
|
<?php
|
|
|
|
class A
|
|
{
|
|
protected $value;
|
|
|
|
public function __construct($val)
|
|
{
|
|
$this->value = $val;
|
|
}
|
|
|
|
protected function getValue()
|
|
{
|
|
return $this->value;
|
|
}
|
|
}
|
|
|
|
class B extends A
|
|
{
|
|
public function copyValue($obj)
|
|
{
|
|
$this->value = $obj->getValue();
|
|
$this->value = $obj->value; // value defined in common base class
|
|
}
|
|
}
|
|
class C extends A {}
|
|
|
|
$B = new B("B");
|
|
var_dump($B);
|
|
$C = new C("C");
|
|
var_dump($C);
|
|
|
|
$B->copyValue($C);
|
|
|
|
var_dump($B);
|
|
|
|
?>
|
|
--EXPECTF--
|
|
object(B)#%d (1) {
|
|
["value":protected]=>
|
|
string(1) "B"
|
|
}
|
|
object(C)#%d (1) {
|
|
["value":protected]=>
|
|
string(1) "C"
|
|
}
|
|
object(B)#%d (1) {
|
|
["value":protected]=>
|
|
string(1) "C"
|
|
}
|