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)); }
Output for git.master, git.master_jit, rfc.property-hooks
string(36) "O:5:"bed\D":1:{s:9:"bed\Aid";i:5;}" string(108) "O:9:"bed\CoolD":6:{s:12:"bed\CoolDd";N;s:4:"*e";N;s:1:"f";N;s:4:"*b";N;s:1:"c";N;s:9:"bed\Aid";i:5;}"

This tab shows result from various feature-branches currently under review by the php developers. Contact me to have additional branches featured.

Active branches

Archived branches

Once feature-branches are merged or declined, they are no longer available. Their functionality (when merged) can be viewed from the main output page


preferences:
193.96 ms | 405 KiB | 5 Q