non-geçersiz $ bu tarafından başvurulan basan PHP sınıfı yöntemleri

0 Cevap php

Yani, bazı php OO şeyler ile sorun yaşıyorum. Ben kod iyi açıklamak düşünüyorum:

class foo {

    $someprop;

    public function __construct($id){
        $this->populate($id);
    }
    private function populate($id){
        global $db;
        // obviously not the call, but to illustrate the point:
        $items = $db->get_from_var1_by_var2(get_class($this),$id);
        while(list($k,$v) = each($items)){
            $this->setVar($k,$v);
        }
    }
    private function setVar($k,$v){
        // filter stuff, like convert JSON to arrays and such.
        $this->$k = $v;
    }
}

class bar extends foo {

    $otherprop;

    public function __construct($id){
        parent::__construct($id);
    }
    private function setVar($k,$v){
        // different filters than parent.
        $this->$k = $v;
    }
}

Şimdi, benim foo tablo içinde someprop varsayarak, ve ben bir kimliği geçtiğinde benim bar masa içinde otherprop var, bu benim nesne üzerinde değişkenler ayarlamanız gerekir.

Ama, nedense, foo mükemmel çalışır, ancak bar herhangi bir ayar yok.

Benim varsayım bu-> setVar () çağrısı $ üzerinde ayrı düşen ve yanlış SetVar çağırıyor, ama get_class ($ this) (ki o) çalışıyorsa, bunun bar $ olmamalı, ve tarafından olmasıdır dernek, setVar () $ bar yöntem olabilir mi?

Herkes yanlış yaptığımı / kaçırıyorum şey mi gördünüz?

0 Cevap