3v4l.org

run code in 300+ PHP versions simultaneously
<?php class Foo { private $priv; private static function set(self $instance, $name, $value) { $instance->$name = $value; } public function __construct(self $instance = null) { $name = 'priv'; $value = 'dafuq'; if ($instance) { self::set($instance, $name, $value); $instance->$name = $value; } } } $a = new Foo; $b = new Foo($a); var_dump($a, $b);

preferences:
43.33 ms | 402 KiB | 5 Q