3v4l.org

run code in 300+ PHP versions simultaneously
<?php class Foo{ private $bar = 'baz'; public function setBar($bar) { $this->bar = $bar; } } $h = function ($obj) { get_object_vars($obj); }; $foo = new Foo(); $hydrator = Closure::bind( $h, new Foo(), // required blueprint! 'Foo' // setting correct class scope (in case of inheritances) ); var_dump($hydrator($foo)); $foo2 = new Foo(); $foo2->setBar('TAB!'); var_dump($hydrator($foo2));

preferences:
39.31 ms | 402 KiB | 5 Q