3v4l.org

run code in 300+ PHP versions simultaneously
<?php class A { public $v; private static $_cli; private function __construct() { } public static function getCli() { if (!self::$_cli instanceof self) { self::$_cli = new self(); } return self::$_cli; } // override __clone() to private private function __clone() { } } $c1 = A::getCli(); $c1->v = 1; $c2 = $c1; $c2->v = 2; $c3 = clone $c1; $c3->v = 3; var_dump($c1->v, $c2->v, $c3->v);

preferences:
55.48 ms | 402 KiB | 5 Q