@ 2016-03-16T15:20:37Z <?php
class A
{
protected $a = null;
public function __construct()
{
$this->a = '123';
}
public function getA()
{
return $this->a;
}
}
$serialized = serialize(new A());
$obj = unserialize($serialized);
$reader = function & ($object, $property) {
$value = & \Closure::bind(function & () use ($property) {
return $this->$property;
}, $object, $object)->__invoke();
return $value;
};
$test3 = & $reader($obj, 'a');
echo "Result from Getter\n";
var_dump($obj->getA());
echo "Result from Reflection\n";
var_Dump($test3);
echo "This is the deserialized Object\n";
var_Dump($obj);
Enable javascript to submit You have javascript disabled. You will not be able to edit any code.
Output for 5.5.0 - 5.5.38 , 5.6.0 - 5.6.40 , 7.0.0 - 7.0.33 , 7.1.0 - 7.1.33 , 7.2.0 - 7.2.33 , 7.3.0 - 7.3.33 , 7.4.0 - 7.4.33 , 8.0.0 - 8.0.30 , 8.1.0 - 8.1.28 , 8.2.0 - 8.2.18 , 8.3.0 - 8.3.6 Result from Getter
string(3) "123"
Result from Reflection
string(3) "123"
This is the deserialized Object
object(A)#1 (1) {
["a":protected]=>
&string(3) "123"
}
preferences:dark mode live preview
284.46 ms | 404 KiB | 327 Q