использовать объект, созданный в конструкторе класса в методах класса - PullRequest
2 голосов
/ 20 июля 2009

Можно ли использовать объект, созданный во время конструирования класса, в методах-членах этого класса?

Ex

<?php
include ('AClass.php');

class Auto_Cart {
    function Auto_Cart() {
       $aclass = new AClass();
    }

    function DoSomething() {
       $aclass->amemberfunction();   

    }
}
?>

Когда я вызываю DoSomething, он должен вызывать aclass-> amemberfunction ()

Я думаю, что мой синтаксис неправильный, но, возможно, это просто невозможно. Вы можете мне помочь?

Спасибо!

Ответы [ 2 ]

6 голосов
/ 20 июля 2009

Вам необходимо сохранить экземпляр AClass как переменную-член (также известную как «свойство») экземпляра Auto_Cart.

Предполагая PHP4 стилем вашего конструктора

class Auto_Cart
{
    /** @var $aclass AClass */
    var $aclass;

    function Auto_Cart()
    {
       $this->aclass = new AClass();
    }

    function DoSomething()
    {
       $this->aclass->amemberfunction();
    }
}

Точно так же, как к вашему сведению, в ООП мы называем это композиция - что означает, что один объект создает и сохраняет ссылку на другой объект автоматически или «лениво».

1 голос
/ 20 июля 2009

Вам нужно сохранить ссылку на объект, чтобы использовать ее позже, так как она будет потеряна при выходе из функции конструктора. Попробуйте сохранить его как член вашего объекта Auto_Cart, например:

<?php
include ('AClass.php');

class Auto_Cart {
    function Auto_Cart() {
       $this->aclass = new AClass();
    }

    function DoSomething() {
       $this->aclass->amemberfunction();   

    }
}
?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...