sınıf yöntemleri sınıf kurucusu içinde oluşturulan nesneyi kullanmak

2 Cevap php

O sınıfın üyesi yöntemleri içinde bir sınıf 'inşaat sırasında oluşturulan bir nesne kullanmak mümkün mü?

Eski

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

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

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

    }
}
?>

Ben DoSomething zaman, AClass-> amemberfunction aramak () olmalıdır

Benim sözdizimi yanlış olduğunu düşünüyorum ama belki bu sadece mümkün değildir. Bana yardımcı olabilir misiniz?

Teşekkürler!

2 Cevap

Sen örnek bir üye değişkeni (aka "mülkiyet") olarak AClass örneğini saklamak gerekir Auto_Cart.

Lütfen yapıcı stili tarafından PHP4 varsayarsak

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

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

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

Bir tıpkı bir Bilginize, OOP-konuşmak biz diyoruz composition - bir nesne otomatik veya "tembel" başka bir nesneye bir başvuru oluşturur ve saklar anlamına gelir.

Siz yapıcı işlevi çıktığında kayıp olacak gibi, daha sonra kullanmak için nesneye bir başvuru saklamak gerekir. Bu gibi, Auto_Cart nesnesinin bir üyesi olarak saklamak deneyin:

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

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

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

    }
}
?>