Задать вопрос
Ответы пользователя по тегу Паттерны проектирования
  • Как правильно передавать параметры при новом создании экземпляра?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Такое, конечно, можно сделать через статическое свойство со списком экземпляров класса, но зачем нужен такой изврат? В каких реальных целях его применять?
    class A
    {
        private static array $instances = [];
        public readonly int $value;
      
        public function __construct(?int $value = null)
        {
            if ($value !== null) {
                $this->value = $value;
                static::$instances[] = $this;
            }
        }
    
        public function summ(): int
        {
            return array_reduce(
                static::$instances,
                fn($acc, $cur) => $acc + $cur->value,
                0
            );
        }
    }
    
    new A(2);
    new A(3);
    $summ = (new A())->summ();
    print $summ; // 5
    Ответ написан
    Комментировать