PHP5 &

0 Cevap php

Ben doğru bu açıklayabilirsiniz Bakalım ...

Ben diğer sınıflar ondan uzanan zaman soyut sınıfın 'Veri sıfırlanır olmak için, ben istiyorum ki soyut bir sınıf var.

Fikir Ben bu uzanan ve veri yapısı için MySQL tablo adlı kullanarak sınıfların bir yığın sahip olmalarıdır. Ben (tablename DAN "sütunları göster) sınıfının 'verileri belirlemek için her sınıf örnekleme ile DB sorgulamak istemiyorum.

Yani her sınıf için, ben bunun için istediğiniz her "Biz daha önce bu sınıf yarattı mı? Eğer öyleyse, biz değilse, için tablo sütunları tablo sütunları kapmak ve sınıf oluşturmak yanı sıra mağaza, sınıf 'yapısını bilmek sonra kullanmak. "

Benim fikrim test için aşağıdaki kullanarak oldum:

$columns = array("Column 1", "Column 2", "Column 3");

abstract class AbstractClass {

    protected static $colFields = array();

    public function __construct() {
        $this->setVars();
    }

    private function setVars() {
        global $columns;
        if (count(self::$colFields) == 0) {
            var_dump("Array length is 0");
            foreach ($columns as $key) {
                self::$colFields[] = $key;
                if (!isset($this->$key))
                    $this->$key = null;
            }
        }
        else {
            var_dump("Array length is not 0");
            foreach (self::$colFields as $key) {
                $this->$key = null;
            }
        }
    }

    public function test() {
        var_dump($this);
    }

}

class ObjectA extends AbstractClass {};

class ObjectB extends AbstractClass {};


$objectAA = new ObjectA();
$objectAB = new ObjectA();
$objectAC = new ObjectA();

$objectAC->test();

$objectBA = new ObjectB();
$objectBB = new ObjectB();
$objectBC = new ObjectB();

$objectBC->test();

Ve betiğin çıktısı:

string(17) "Array length is 0"
string(21) "Array length is not 0"
string(21) "Array length is not 0"
object(ObjectA)#3 (4) {
["className":protected]=>
string(7) "ObjectA"
["Column 1"]=>
NULL
["Column 2"]=>
NULL
["Column 3"]=>
NULL
}
string(21) "Array length is not 0"
string(21) "Array length is not 0"
string(21) "Array length is not 0"
object(ObjectB)#6 (4) {
["className":protected]=>
string(7) "ObjectB"
["Column 1"]=>
NULL
["Column 2"]=>
NULL
["Column 3"]=>
NULL
}

Ben çıktı ObjectB ilk örnekleme bekliyorum segment "Dizi uzunluğu 0 olan", daha sonra devam.

Herkes yardımcı olabilir?

0 Cevap