otro - Obteniendo el nombre de una clase hija en PHP
php object class (3)
Editar: no sabía acerca de get_class
, descarta esto;)
Podría intentar __CLASS__
pero podría no funcionar correctamente.
Una solución alternativa podría ser especificar el nombre de clase como una propiedad de la clase base.
Editar: Esto no funciona (utilicé el siguiente código) construir () {echo __CLASS; }}
class b extends a {}
$b = new b;
Sugeriría pasar el nombre de $ b como parámetro a A, por ejemplo:
<?php
class a {
protected $name;
public function __construct() {
echo $this->name;
}
}
class b extends a {
protected $name = __CLASS__;
}
$b = new b;
Digamos que estoy construyendo una clase base que será extendida por la clase de los niños. Entonces una clase base se llama Base
y los niños pueden ser Child1
, Child2
, etc.
En el constructor de la clase base, ¿cómo puedo obtener el valor de Child1 / Child2?
Esto es todo usando PHP
Una clase base en realidad nunca debería depender de la información sobre clases de niños ---
Para responder tu pregunta:
class base {
public function __construct() {
print "Class:" . get_class($this) . "/n";
}
}
class child extends base{
public function __construct() {
parent::__construct();
}
}
$c = new child();
Solo para referencia futura: esto se puede lograr en un contexto estático usando get_called_class (), pero esto solo está disponible en PHP> = 5.3
simplemente llame a get_class ($ this), tenga en cuenta que un método de clase base no tiene un verdadero negocio al cambiar su comportamiento dependiendo de qué clase derivada lo está utilizando. Ese es el punto de derivar una clase :)