Nel PHP Constructors and Destructors documentation si affermaI costruttori genitori hanno chiamato se una classe figlia NON definisce un costruttore?
Nota: costruttori Parent non sono chiamati implicitamente se la classe figlia definisce un costruttore. Per eseguire un costruttore genitore, è richiesta una chiamata a parent :: __ construct() all'interno del costruttore figlio.
Ma se la classe figlio non chiama un costruttore, verrà ancora chiamato il costruttore padre? O dovremmo creare un costruttore che chiama comunque il costruttore genitore?
IE:
class BaseClass {
function __construct() {
print "In BaseClass constructor\n";
}
}
class SubClass extends BaseClass {
function __construct() {
parent::__construct();
}
}
Forse [il manuale] (http://www.php.net/manual/en/language.oop5.decon.php) è stato aggiornato più di recente, ma lo stato è "Se il bambino non definisce un costruttore quindi può essere ereditato dalla classe genitore proprio come un normale metodo di classe (se non è stato dichiarato come privato). " – MrWhite
@ w3d Grazie per l'aggiornamento :). –
Puoi addirittura dichiarare un costruttore come privato? Ciò sembra sconfiggere lo scopo di avere una classe in primo luogo. – eggmatters