firep91613
Новичок
Здравствуйте. Я не давно начал изучение PHP, дошел до паттерна Singleton. Не до конца разобрался с кодом, прошу помочь.
PHP:
namespace Singleton;
final class Settings
{
// Почему здесь ?Settings? Создается же объект класса Settings
private static ?Settings $_object;
private ?array $_settings;
private function __construct()
{
// Зачем здесь нужна локальная переменная?
$_settings = [];
}
private function __clone() {}
public static function get() : Settings
{
self::$_object ??= new self();
return self::$_object;
}
public function __get($key) : mixed
{
if (array_key_exists($key, $this->_settings)) {
return $this->_settings[$key];
} else {
return null;
}
}
public function __set($key, $value) : void
{
// Тут так и должно быть? Свойство же $_settings
$this->_settings[$key] = $value;
}
}