Ответы пользователя по тегу ООП
  • В чём преимущество автозагрузчика классов?

    GeneMoss
    @GeneMoss
    void
    А можно избавиться от строки $obj = new MyClass(); и создавать экземпляр автоматически в момент $obj->displayVar();?
    Естественно заранее не создавая "впрозапас" по экземпляру каждого класса.

    Не совсем четкое требование, но по описанию похоже на синглтон. Т.е. вызывать вот так:
    MyClass::getInstance()->displayVar();
    MyClass::getInstance()->foo();
    MyClass::getInstance()->bar();

    Объект создастся в момент первого вызова.

    В классе реализовать вот так:
    class MyClass {
      protected static $instance = null;
      
      protected __construct() { }
    
      public static function getInstance() {
        if (is_null($this->instance)) {
          self::$instance = new self();
        }
        return self::$instance;
      }
    }
    Ответ написан