> Faqs > Reflexión para instanciación dinámica en PHP

Reflexión para instanciación dinámica en PHP

¿Alguién podría darme un ejemplo de reflexion para instanciación dinámica en PHP?

Es decir, tengo el nombre de una clase en una variable de tipo cadena. Entonces quiero instanciar dinámicamente un objeto la clase que se llama igual que el valor de la cadena que tengo en la variable.

Respuestas

Hola, Al ser PHP un lenguaje de programación muy permisivo la reflexión es muy sencilla y necesitas simplemente una cadena de texto con el nombre de la clase.

Por ejemplo:

<?php
$miClase = "ListaOrdenada";

class ListaOrdenada {
    public function probandoMetodo() {
        echo "La reflexión ha funcionado";
    }
}

$miLista = new $miClase();
$miLista->probandoMetodo();

En este código hemos realizado los siguientes pasos:

  • Creamos una cadena con el nombre de una clase a instanciar: "ListaOrdenada"
  • Tenemos una clase que se llama "ListaOrdenada". El contenido de la clase no importa mucho. Solamente hemos colocado un método para probarlo.
  • Luego instanciamos la clase con el operador new. Usamos la variable de cadena creada $miClase en lugar de la clase. Los paréntesis aquí son opcionales porque no tenemos constructor al que necesitemos enviar parámetros.
  • Luego probamos que podemos invocar el método, con lo que se verifica que el comportamiento de reflexión está funcionando.
Santiago
571 18 45 21
Me ha resultado muy útil tu respuesta... a veces me lío un poco con estas cosas de PHP.