Итак, я всегда реализовал синглтон, например:
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() { }
}
Для меня это чище, потому что он не загромождает класс , и мне не нужно делать явные проверки существования, но поскольку я никогда не видел эту реализацию нигде, Мне интересно:
Есть ли что-то неправильное в использовании второй реализации над первым?