Nenhum produto encontrado nessa seleção.
É possível criar objetos dinâmicos em PHP, quero dizer, criar objetos sem criar uma classe antes. Para isso, podemos utilizar a stdClass (Standard Class).
Você pode até criar um objeto direto pelas propriedades, por exemplo:
$objeto->propriedade = 'valor';
Porém, você vai ver um erro de aviso quando fizer isso.
Se precisar criar objetos diretamente, o mais correto é criar uma instância da stdClass. Veja:
<?php // Primeiro objeto $luiz = new stdClass(); $luiz->nome = 'Luiz Otávio'; $luiz->sobrenome = 'Miranda'; $luiz->idade = 27; $luiz->profissao = 'Desenvolvedor'; // Segundo objeto $jose = new stdClass(); $jose->nome = 'José'; $jose->sobrenome = 'silva'; $jose->idade = 33; $jose->profissao = 'Analista de Sistemas'; // Função para percorrer o objeto e mostrar os dados function mostra_dados ( $objeto ) { // Laço foreach ( $objeto as $propriedade => $valor ) { // Mostra echo ucfirst( $propriedade ) . ' = ' . $valor . '<br>'; } } // Mostra primeiro objeto mostra_dados( $luiz ); echo '<br>'; // Mostra segundo objeto mostra_dados( $jose ); ?>
Você não terá métodos nos objetos criados dinamicamente, apenas propriedades.
Propriedades dinâmicas em classes PHP
Também é possível criar propriedades dinamicamente em qualquer classe PHP, para isso, simplesmente utilize a seguinte forma:
$objeto->propriedade = 'valor';
Veja um exemplo completo:
<?php // Cria uma classe comum sem propriedades class Dinamica { // Um método que exibe as propriedades dinâmicas public function obter_propriedades () { // get_object_vars obtém todas as propriedades da classe $propriedades = get_object_vars( $this ); foreach ( $propriedades as $propriedade => $valor ) { echo "{$propriedade} = {$valor}<br>"; } } } // Instância (objeto) $dinamica = new Dinamica(); // Cria propriedades $dinamica->propriedade1 = 'Propriedade 1'; $dinamica->propriedade2 = 'Propriedade 2'; $dinamica->propriedade3 = 'Propriedade 3'; // Exibe as propriedades criadas $dinamica->obter_propriedades(); ?>
Como resultado teremos:
propriedade1 = Propriedade 1
propriedade2 = Propriedade 2
propriedade3 = Propriedade 3
Perceba que utilizei a função get_object_vars para obter as propriedades criadas dinamicamente.
Concluindo
Objetos e propriedades dinâmicas em PHP podem ser bastante úteis dependendo da ação que seu código vai realizar. Utilize sabiamente.
Não deixe de seguir todas as aulas do nosso curso gratuito de PHP e de PHP Orientado a Objetos.
Caso tenha dúvidas, não hesite em comentar.