Me preguntaba si es posible llamar a los padres __construct(), antes del __construct() del hijo con la herencia en PHP.Llamar al constructor padre antes del constructor hijo en PHP
Ejemplo:
class Tag {
__construct() {
// Called first.
}
}
class Form extends Tag {
__construct() {
// Called second.
}
}
new Form();
Idealmente, me gustaría ser capaz de hacer algo entre ellos. Si esto no es posible, ¿hay alguna alternativa que me permita hacer esto?
La razón por la que quiero hacer esto es poder cargar una serie de configuraciones predeterminadas específicas de la etiqueta que Form puede usar cuando se llama a __construct().
EDITAR: Perdón, olvidé agregar esto .. Prefiero no llamar a la clase para padres de la clase de niños. Es simplemente porque expone algunos datos privados (para los padres) para el niño, cuando se pasa como argumento
Esto es lo que quiero hacer:
$tag = new Tag($privateInfo, $publicInfo);
$tag->extend(new Form()); // Ideal function, prob doesn't work with inheritance.
Tag.php
class Tag {
private $privateInfo;
public $publicInfo;
__construct($private, $public) {
$this->privateInfo = $private;
$this->publicInfo = $public;
}
}
form.php
class Form extends Tag {
__construct() {
echo $this->publicInfo;
}
}
¿Tiene sentido?
Gracias! Matt Mueller
¿Puede explicar lo que quiere decir con esto * 'expone algunos datos privados (para el padre) al niño' *? –
Los datos privados de una clase principal no estarán expuestos a ninguna subclase. Los datos públicos o protegidos serán privados. –
Yah, pero si los parámetros (privados) pasan primero por el constructor hijo, el niño tiene acceso a ellos. Lo edité para aclararlo. – Matt