Çocuğun __construct() işlevini çocuğunuzun __construct() işlevinden önce PHP'de miras olarak çağırmak mümkün olup olmadığını merak ediyordum.PHP'de çocuk yapıcısından önce ana yapıcıyı çağırın
Örnek:
class Tag {
__construct() {
// Called first.
}
}
class Form extends Tag {
__construct() {
// Called second.
}
}
new Form();
İdeal olarak, ben aralarında bir şeyler yapmak mümkün olacaktır. Eğer bu mümkün değilse, bunu yapmamı sağlayacak bir alternatif var mı?
Bunu yapmak istememin nedeni, __construct() çağrıldığında Form'un kullanabileceği Etikete özgü bir dizi varsayılan ayar yükleyebilmektir.
DÜZENLEME: Maalesef bunu eklemeyi unuttum .. Çocuk sınıfından ana sınıfı çağırmamayı tercih ederim.
$tag = new Tag($privateInfo, $publicInfo);
$tag->extend(new Form()); // Ideal function, prob doesn't work with inheritance.
Tag.php
: o çocuğa (ebeveyn için) bazı özel verileri ortaya çıkarır çünkü bağımsız değişken olarak geçmek zamanBu yapmak istediğim şey, basitçe var
class Tag {
private $privateInfo;
public $publicInfo;
__construct($private, $public) {
$this->privateInfo = $private;
$this->publicInfo = $public;
}
}
giriş başlıkları
class Form extends Tag {
__construct() {
echo $this->publicInfo;
}
}
Mantıklı?
Teşekkürler! senin yapı içinde Matt Mueller
Bu anlama geldiğinde ne yapacağınızı ayrıntılı olarak açıklayabilir misiniz? '' Ebeveyn için bazı özel verileri (ebeveyn için) '* gösteriyor? –
Bir ana sınıfın özel verileri herhangi bir alt sınıfa maruz bırakılmayacaktır. Kamu veya korumalı veriler olacak, özel değil. –
Yah, ancak (özel) parametreler ilk çocuk kurucusundan geçerse, çocuğun bunlara erişimi vardır. Açıklığa kavuşturmak için düzenledim. – Matt