3v4l.org

run code in 300+ PHP versions simultaneously
<?php class hell { private $ruler = 'devil'; function cry(){ echo $this->ruler; } } $inst = new hell(); $inst->cry(); $in2 = Closure::bind(function () {$this->ruler = 'jesus';}, $inst, get_class($inst)); $in2(); $inst->cry(); class Singleton { protected static $instance; // object instance private function __construct(){ /* ... @return Singleton */ } // Защищаем от создания через new Singleton private function __clone() { /* ... @return Singleton */ } // Защищаем от создания через клонирование private function __wakeup() { /* ... @return Singleton */ } // Защищаем от создания через unserialize public static function getInstance() { // Возвращает единственный экземпляр класса. @return Singleton if ( !isset(self::$instance) ) { $class = __CLASS__; self::$instance = new $class(); selt::$instance->id = mt_rand(1,1000); } return self::$instance; } public function doAction() { echo $this->id; } } Singleton::getInstance()->doAction(); // Применение $singy = Singleton::getInstance();

preferences:
29.52 ms | 402 KiB | 5 Q