<?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/WidPb:35
Stack trace:
#0 /in/WidPb(45): runner->run()
#1 {main}
thrown in /in/WidPb on line 35
Process exited with code 255.
Warning: Unexpected character in input: '\' (ASCII=92) state=1 in /in/WidPb on line 7
Warning: Unexpected character in input: '\' (ASCII=92) state=1 in /in/WidPb on line 11
Fatal error: Cannot access protected property b::$object in /in/WidPb 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/WidPb 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/WidPb 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/WidPb on line 4
Process exited with code 255.