Ben bu süper-eski farkında, ama durumda herkesten bir ipucu ihtiyacı ...
Eğer statik değişkenler kullanarak düşündünüz mü?
PHP OOP tasarım deseni statik bir parent sınıfında değişkenler de, child sınıfında aynı kalır ilan şekildedir.
Örneğin ...
<?php
class A {
public static $test = 'a';
public function test() {
echo 'Test is: '.self::$test;
}
}
class B extends A {
public static $test = 'b';
}
$obj = new B;
$obj->test();
?>
Bu kodu çalıştırmadan size aşağıdaki sonucu verecektir (PHP 5.3-ben de, diğer sürümleri için aynı olduğundan emin değilim):
Test is: a strong>
Hatta genişletilmiş sınıfları - Ben senin OP ne toplayabilir itibaren, parent class variables kalması için bir yol arıyoruz. Bu, sorunu çözer.
Sınıf kapsamı dışında kamuya değişkenleri aramak için (yani normalde yazardım burada $obj->vars), üst sınıftaki bir fonksiyonu oluşturmak gerekir ki referansları self::$variable_name
, böylece geri o sınıfı, ya da genişleten herhangi başka bir sınıf ya da kullanan kod için bu değişkeni atabilir.
Örneğin, gibi bir şey:
public function get_variable() {
return self::$variable;
}
Bir yöntem ya da bir değişken yani - Ayrıca dinamik için örneği ne sormak dayalı geri self :: $ değişken atmak olacak sihirli bir yöntemi oluşturabilirsiniz. Sen her durumda kendini :: $ değişken eşdeğer geri atmak kod tel olabilir.
http://php.net/manual/en/language.oop5.magic.php Eğer bu tarz şeyleri yapmak için izin çeşitli sihirli yöntemler hakkında daha fazla bilgi için okuyun.
Yardımcı olur umarım - OP yüzden ben bu tam istediğin buysa emin değildi, ama ben burada herkesten statik değişkenler yüzden uymak düşündüm başvuru görmedim biraz şifreli oldu!