<?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 $target;
public function __construct() {
$this->target = new b();
}
public function run() {
$object1 = new stdClass();
$object1->name = "object1";
$object2 = new stdClass();
$object2->name = "object2";
if ($object1 instanceof $this->target->object) {
$b2 = clone $this->target;
$b2->object = $object1;
echo $b2->getObject()->name;
}
}
}
$runner = new runner();
$runner->run();
Fatal error: Uncaught Error: Cannot access protected property b::$object in /in/EUu3T:45
Stack trace:
#0 /in/EUu3T(55): runner->run()
#1 {main}
thrown in /in/EUu3T on line 45
Process exited with code 255.
Fatal error: Cannot access protected property b::$object in /in/EUu3T on line 45
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/EUu3T 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/EUu3T 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/EUu3T on line 8
Process exited with code 255.