php hiçbir $parent->function();
sözdizimi neden orada olduğunu merak ediyordum, ama bunun yerine bir statik sınıf içinde kullanılan benziyor ki parent::function();
kullanabilirsiniz. Ben bazı php oop temel eksik?
Ben garip görünüyor itiraf - ve ^ ^ kılavuzda şey özledim vermedi
Ancak:
__construct
hariç, itiraf - bu ebeveynin __construct
yöntemi kendiniz aramak zorunda kılavuzda açıkça söyleniyor bu yüzden muhtemelen.$this
çocuk veya ebeveyn sınıfının ya aynı örneğinde yöntemleri çağırmak için kullanacağız; yöntemi aslında nerede olduğunu bilmek gerek.parent::
statik bir çağrı gibi görünüyor olsa bile, gayet iyi çalışıyor
And here's an example of code showing parent::
works fine :
class Father {
public function method() {
var_dump($this->a);
}
}
class Son extends Father {
protected $a;
public function method() {
$this->a = 10;
parent::method();
}
}
$obj = new Son();
$obj->method();
You'll get this output :
$ /usr/local/php-5.3/bin/php temp.php
int(10)
Hangi ana sınıfta, metot $this
erişimi ve alt sınıfında tanımlanan özelliklere sahip olduğunu göstermektedir.
Kullanarak $parent
aslında üst sınıf örneği olduğunu varsayar çünkü.
Lütfen sözdizimi çalıştı öneririz, bu size 2 veya daha fazla nesneleri başlatmasını edildi, bir nesne örneği her şey anlamına gelecektir.
PHP, her değişken bir dize, tamsayı (ya da diğer sayısal biçim), dizi, nesne veya kaynak içermelidir. $this
bir nesne içerir ve sadece içinizde şu anda nesne olur.
$parent
oluşturmak için, $parent
içine bir nesne koymak zorunda kalacaktı. Sen üst sınıf teknik örneği değil, bu nedenle bir değişkene atanamaz.
BTW parent::function();
$this
tüm erişimi vardır.
Dolayısıyla, bu işleri
class Test
{
public function test()
{
echo $this->testing_var;
}
}
class OtherTest
{
public function run()
{
$this->testing_var = "hi";
Test::test(); // echos hi
}
}
Ve bu sınıfın dışında kullanıldığı takdirde hata olacak ve statik ilan edilmelidir söyleyecektir.
Test::test();