3v4l.org

run code in 300+ PHP versions simultaneously
<?php class Singleton{ private static $instance; private function __construct(){} public static function instance() { if (is_null(self::$instance)){ self::$instance = new static; } return self::$instance; } } $obj1 = Singleton::instance(); $obj2 = Singleton::instance(); var_dump(spl_object_hash($obj1), spl_object_hash($obj2)); $closure = function(){ return clone self::$instance; }; $cloner = $closure->bind($obj1); $obj3 = $cloner(); var_dump(spl_object_hash($obj3));

preferences:
40.84 ms | 402 KiB | 5 Q