É possível criar novos atributos fora da classe ?
Pergunto isso pois esqueci de declarar o atributo Preco dentro da classe Produto. Porém, quando utilizei o método $Produto->Preco = $Valor foi aceito normalmente.
Veja abaixo que não declarei o atributo Preco:
<?php
class Produto {
public $Id;
public $Nome;
public $Descricao;
public $Categoria;
public $Usado;
}
?>
Mesmo assim, quando atribui um valor no parametro Preco do objeto Produto, foi aceito e mostrado na tela como se ele existisse para minha classe:
function listaProdutos($conexao) {
$produtos = array();
$resultado = mysqli_query($conexao, "select p.*,c.nome as categoria_nome from
produtos as p join categorias as c on c.id=p.categoria_id");
while($produto_array = mysqli_fetch_assoc($resultado)) {
$Categoria = new Categoria();
$Categoria->Nome = $produto_array['categoria_nome'];
$Produto = new Produto();
$Produto->Id = $produto_array['id'];
$Produto->Nome = $produto_array['nome'];
$Produto->Descricao = $produto_array['descricao'];
$Produto->Categoria = $Categoria;
$Produto->Preco = $produto_array['preco'];
$Produto->Usado = $produto_array['usado'];
array_push($produtos, $Produto);
}
return $produtos;
}
Como isso pode acontecer ?