<?php
class b {
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();
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/sQv4s:35
Stack trace:
#0 /in/sQv4s(45): runner->run()
#1 {main}
thrown in /in/sQv4s on line 35
Process exited with code 255.
Fatal error: Cannot access protected property b::$object in /in/sQv4s on line 35
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/sQv4s on line 4
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/sQv4s on line 4
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/sQv4s on line 4
Process exited with code 255.