Итак, я всегда реализовал синглтон:
class Singleton { private static $_instance = null; public static function getInstance() { if (self::$_instance === null) self::$_instance = new Singleton(); return self::$_instance; } private function __construct() { } }
Однако недавно мне показалось, что я мог бы также реализовать его с помощью статических переменных:
class Singleton { public static function getInstance() { //oops - can't assign expression here! static $instance = null; // = new Singleton(); if ($instance === null) $instance = new Singleton(); return $instance; } private function __construct() { } }
Для меня это чище, потому что это не загромождает класс , и мне не нужно делать никаких явных проверок существования , но поскольку я никогда не видел эту реализацию нигде, мне интересно:
Что-то не так с использованием второй реализации по сравнению с первой?