Você está aqui: PHP ::: Reflection (introspecção) e RTI (Runtime Type Information) ::: Passos Iniciais |
Como usar Reflexão (Reflection) no PHP - Entenda a Reflection API do PHP para fazer introspeção de seus códigosQuantidade de visualizações: 1035 vezes |
Várias linguagens de programação tais como Java, C++, Delphi, JavaScript, entre outras, permitem o uso de reflexão (Reflection), ou RTI (Runtime Type Information). E o PHP não fica de fora. A Reflection nos permite analisar nossos códigos PHP e obter informações sobre as classes, métodos e atributos de cada uma delas, assim como fazer chamadas de método dinamicamente. Vamos começar com um exemplo? Veja o código para uma classe PHP: <? // vamos declarar a classe Produto class Produto{ private $nome; private $preco; // define o nome do produto function setNome($nome){ $this->nome = $nome; } // define o preço do produto function setPreco($preco){ $this->preco = $preco; } // obtém o nome do produto function getNome(){ return $this->nome; } // obtém o preço do produto function getPreco(){ return $this->preco; } } Esta classe PHP possui dois atributos privados (nome e preco), dois métodos mutatórios (setNome e setPreco) e dois métodos acessórios (getNome e getPreco). Vejamos agora como usar a PHP Reflection API para obter e listar os nomes dos métodos dessa classe. Veja o exemplo completo: <? // vamos declarar a classe Produto class Produto{ private $nome; private $preco; // define o nome do produto function setNome($nome){ $this->nome = $nome; } // define o preço do produto function setPreco($preco){ $this->preco = $preco; } // obtém o nome do produto function getNome(){ return $this->nome; } // obtém o preço do produto function getPreco(){ return $this->preco; } } // vamos criar um objeto da classe Produto Observe no código como criamos um novo objeto da classe ReflectionClass fornecendo como argumento um objeto da classe Produto. Em seguida fazemos uma chamada ao método getMethods() da instância de ReflectionClass para listar os métodos declarados na classe Produto. O resultado será algo parecido com: Method [ public method setNome ] Method [ public method setPreco ] Method [ public method getNome ] Method [ public method getPreco ] Esta dica foi escrita e testada no PHP 8. |
![]() |
Desafios, Exercícios e Algoritmos Resolvidos de PHP |
Veja mais Dicas e truques de PHP |
Dicas e truques de outras linguagens |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
1º lugar: Java |