PHP dizi özelliklerini miras

1 Cevap php

I PHP 5.2.9 bir sınıf hiyerarşisi var.

Taban sınıf bir ilişkisel dizi korunan bir özelliği vardır.

Çocuk sınıflar diziye bazı öğeleri ekleyebilirsiniz.

Çocuk sınıflar birden çok geliştiriciler tarafından oluşturulan ve eklenecek ayrı dosyalar (eklentileri), ilan edilir.

Yeni bir çocuk bildirmek mümkün olduğunca basit olacağını böylece çocuğun derslerinde özelliğine öğeler eklemek için en iyi yolu hangisidir?

<?php
        class A {
                protected $myproperty = array (
                        'A1' => 1,
                        'A2' => 2
                );

                function myprint()
                {
                        print_r($this->myproperty);
                }
        };

        class B extends A {
                // add 'B1', 'B2' to myproperty
        };

        class C extends B {
                // add 'C1', 'C2' to myproperty
        };

        $c = new C();
        $c->myprint();
        // The line above should print A1, A2, B1, B2, C1, C2
?>

İdeal olarak, herhangi bir kod CopyPaste için bir ihtiyaç kalmadan, bir değişken veya özel bir mal beyanında gibi basit geliştiriciler için bunu yapmak istiyorum.

1 Cevap

constructors miras sınıfların yararlanın, B sınıfı için böyle bir şey olacak:

class B extends A {
    function __construct() {
        parent::__construct();                // Call constructor of parent class
        array_push($myproperty, "B1", "B2");  // Add our properties
    }
}

Aynı sınıf C için de geçerli

Eğer miras sınıfların bir şey var, ya da mümkün olduğunca fazla destek sağlamak istiyorsanız, bazı fonksiyon içine bu kodu koyabilirsiniz. Yani diğer geliştiriciler sadece kendi çocuğu 'register' kendi yapıcısı bu işlevi çağırmak gerekir.