PHP
Métodos mágicos get e set do PHP 5
Hoje iremos abordar os métodos mágicos __get() e __set() do PHP 5. O PHP nos possibilita utilizar o conceito de encapsulamento da orientação a objetos de forma mais econômica, com a utilização destes métodos.
Em uma classe implementada nos padrões convencionais, para cada atributo privado declarado, precisamos criar 2 métodos (o set e o get) para atribuir e recuperar informações nesse atributo fora da classe.
Com os métodos mágicos __get e __set do PHP fica tudo mais fácil, porque basta que eu implemente-os em um arquivo e eles poderão ser utilizados para todos os atributos que a classe possuir e, melhor ainda, por todas as classes do sistema, bastando para isso usar um include desse arquivo.
Veja um exemplo:
<?php class Pessoa { private $nome; private $sobrenome; public function __set($atrib, $value){ $this->$atrib = $value; } public function __get($atrib){ return $this->$atrib; } } ?>
No método __set são definidos 2 parâmetros. No primeiro informamos o atributo que deverá receber o valor e no segundo informamos o valor em si. Já no método __get informamos apenas o atributo no qual desejamos capturar o valor armazenado.
Agora vamos a um exemplo de utilização dessa classe:
<?php $Pessoa = new Pessoa(); $Pessoa->nome = 'Fulano'; $Pessoa->sobrenome = ' de Tal'; echo 'Nome: ' . $Pessoa->nome . '<br />'; echo 'Sobrenome: ' . $Pessoa->sobrenome; ?>
Como os atributos são do tipo private, quando invocamos no objeto, na verdade o que está sendo executado são os métodos __get e __set. Essa técnica é chamada de overloading.
Muito prático e fácil de entender e também de se utilizar.
Até a próxima.
Gigasystems Login:
Informe seu e-mail abaixo para continuar!
XVeja Também:
Artigos Relacionados a categoria: PHP
Cotações para compra e venda de Moedas estrangeiras com PHP
27 July de 2016
Gerenciador de dependências Composer
14 January de 2016
Erro ao acessar um arquivo externo com o comando file_get_content
04 November de 2015
Baixando anexo do email no servidor com IMAP e PHP
27 August de 2015
Olá, deixe seu comentário para Métodos mágicos get e set do PHP 5
Douglas Fernando
Andrews
Exemplo:
public function __set($atrib, $value){
if(property_exists($this, $atrib){
$this->$atrib = $value;
}
else{ echo 'Atributo inexistente';}
}
Sei que echo não é uma boa prática, mas talvez retornar isso a uma variável..sei lá..
Marcos Martins
Até +