3v4l.org

run code in 300+ PHP versions simultaneously
<?php class A { public $a; public $b; private $c; public function __construct($a, $b, $c) { $this->a = $a; $this->b = $b; $this->c = $c; } public function toArray() { return $this->getVars(); } public function getVars() { $ret =[]; foreach ((new ReflectionObject($this))->getProperties(ReflectionProperty::IS_PUBLIC) as $prop) { $n = $prop->getName(); $ret[$n] = $this->{$n}; } return $ret; } } $o = new A(1,2,3); var_dump($o->toArray());

preferences:
33.64 ms | 402 KiB | 5 Q