Экземпляр класса в другом классе

Тема в разделе "PHP", создана пользователем .WishMaster., 26 июл 2009.

Статус темы:
Закрыта.
Модераторы: latteo
  1. .WishMaster.

    .WishMaster. Создатель

    Регистр.:
    15 июл 2009
    Сообщения:
    27
    Симпатии:
    0
    Здравствуйте.
    Собственно, есть два класса
    PHP:
    class A
    {
        private 
    $AA;
        public function 
    somefnc()
        {
        }
    };

    class 
    B
    {
        private 
    $BB;
        function 
    __construct()
        {
            
    $this->$BB=new A();
            
    $this->$BB->somefnc();
        }
        public function 
    somefnc2()
        {
        }
    };
    Собственно проблема при вызове конструктора второго класса (В) ругается на то, что необъявленная переменная (Undefined variable: ВВ) и далее (Fatal error: Cannot access empty property )
    Собственно каким образом можно сделать объект класса в другом классе?
     
  2. semakos

    semakos Постоялец

    Регистр.:
    26 окт 2008
    Сообщения:
    63
    Симпатии:
    14
    Сразу две ошибки в одной строке.
    Вместо:
    PHP:
    $this->$BB=new AA(); 
    $this->$BB->somefnc();
    Надо:
    PHP:
    $this->BB=new A(); 
    $this->BB->somefnc();
     
  3. Freeborn

    Freeborn Постоялец

    Регистр.:
    31 окт 2008
    Сообщения:
    62
    Симпатии:
    21
    Ну так у вас действительно нет класса АА, который вы объявляете, у вас есть класс А. Вот так наверно?
    PHP:
    $this->BB=new A(); 
     
  4. .WishMaster.

    .WishMaster. Создатель

    Регистр.:
    15 июл 2009
    Сообщения:
    27
    Симпатии:
    0
    Это не ошибки это очепятки, я сюда относительный пример привел, дабы полностью код этих двух классов писать, в действительности даже $this->BB=new A(); погоды не поменяет.
    Отредактировал перый пост
     
  5. Freeborn

    Freeborn Постоялец

    Регистр.:
    31 окт 2008
    Сообщения:
    62
    Симпатии:
    21
    PHP:
    class A
    {
        private 
    $AA;
        public function 
    somefnc()
        {
            return 
    'ok';
        }
    }

    class 
    B
    {
        private 
    $BB;
        function 
    __construct()
        {
            
    $this->BB = new A();
            echo 
    $this->BB->somefnc();
        }
        public function 
    somefnc2()
        {
        }
    }
    $aa =  new B();
    Все работает.
     
    .WishMaster. нравится это.
  6. .WishMaster.

    .WishMaster. Создатель

    Регистр.:
    15 июл 2009
    Сообщения:
    27
    Симпатии:
    0
    Спасибо. Работает нашел ошибку.
    $this->$BB=new A();
    Перед ВВ доллар не нужен...
    Ух от жары мозги совсем плавятся, я уже думал колдунство какое то....раньше то писал и работало ведь..мля детская ошибка..
    Всем спасибо
     
Статус темы:
Закрыта.