<?php
class a {
}
class b extends a {
protected $object;
public function __construct() {
$this->object = new stdClass();
$this->object->name = "default";
}
public function setObject(stdClass $object) {
$this->object = $object;
}
public function getObject() {
return $this->object;
}
public function __clone() {
$this->object = clone $this->object;
}
}
class runner {
public function run() {
$object1 = new stdClass();
$object1->name = "object1";
$object2 = new stdClass();
$object2->name = "object2";
$b1 = new b();
$b1->setObject($object2);
if ($object1 instanceof $b1->object) {
$b2 = clone $b1;
$b2->object = $object1;
echo $b2->getObject()->name;
}
}
}
$runner = new runner();
$runner->run();
Fatal error: Uncaught Error: Cannot access protected property b::$object in /in/plKpP:41
Stack trace:
#0 /in/plKpP(51): runner->run()
#1 {main}
thrown in /in/plKpP on line 41
Process exited with code 255.
Fatal error: Cannot access protected property b::$object in /in/plKpP on line 41
Process exited with code 255.
Output for 4.4.2 - 4.4.9
Parse error: syntax error, unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in /in/plKpP on line 8
Process exited with code 255.
Parse error: parse error, unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in /in/plKpP on line 8
Process exited with code 255.
Output for 4.3.2 - 4.3.4
Parse error: parse error, expecting `T_OLD_FUNCTION' or `T_FUNCTION' or `T_VAR' or `'}'' in /in/plKpP on line 8
Process exited with code 255.