3v4l.org

run code in 300+ PHP versions simultaneously
<?php namespace bed { class A { private $id=5; protected $b; public $c; public function __sleep() { return ['id']; } } class B extends A{ public function __sleep(){ return parent::__sleep(); } } class D extends A{ public function __sleep(){ return ["\0bed\A\0id"]; } } class CoolD extends A { private $d; protected $e; public $f; public function __sleep(){ $allProperties = []; $reflection = new \ReflectionClass($this); do{ foreach ($reflection->getProperties() as $prop) { $allProperties[($prop->isPrivate() ? "\0" . $prop->getDeclaringClass()->getName() . "\0" . $prop->getName() : $prop->getName())] = true; } }while($reflection = $reflection->getParentClass()); return array_keys($allProperties); } } class C extends A{ } // var_dump(serialize(new C)); - not working // var_dump(serialize(new B)); - not working var_dump(serialize(new D)); var_dump(serialize(new CoolD)); }

preferences:
37.01 ms | 406 KiB | 5 Q