Fórum Trabalhando com métodos mágicos __Get e Set em PHP #560430
21/08/2016
0
1º - Trabalhando com métodos mágicos (__Get e __Set) como faço para sobrescrever um método protegido (protected $salario;)? Como os métodos get e set era mais fácil eu era só sobrescrever o método get e na nova classe.
És o print do código a baixo quero o contabilista e o programador tenham o cálculo do salário efectuado de forma diferente, como faço usando o código abaixo?
2º - Posso trabalhar com os métodos get e set em vez dos mágicos (__get e __set), será não haverá problema no código?
3º - Quais as vantagens de um e de outro?
És o print do código a baixo quero o contabilista e o programador tenham o cálculo do salário efectuado de forma diferente, como faço usando o código abaixo?
2º - Posso trabalhar com os métodos get e set em vez dos mágicos (__get e __set), será não haverá problema no código?
3º - Quais as vantagens de um e de outro?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | <? php // Criação da classe funcionário class Funcionario{ private $nome; private $datanasc; private $identificacao; protected $salario; // Criação dos métodos __Get e __Set public function __get($valor){ return $this->$valor; } public function __set($propriedade,$valor){ $this->$propriedade = $valor; } } ?> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | <? php // Criação da classe contabilista class Contabilista extends Funcionario { private $CRC; public function __costruct($nome,$datanasc,$identificacao,$salario, $CRC){ parent::__costruct($nome,$datanasc,$identificacao,$salario); } public function __get($valor){ return $this->$valor; } public function __set($propriedade,$valor){ $this->$propriedade = $valor; } } ?> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | <? php // Criação da classe programador class Programador extends Funcionario { private $lingprog; public function __costruct($nome,$datanasc,$identificacao, $salario,$lingprog){ parent::__costruct($nome,$datanasc,$identificacao, $salario); } public function __get($valor){ return $this->$valor; } public function __set($propriedade,$valor){ $this->$propriedade = $valor; } } ?> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 | <!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\"> < head > < meta http-equiv=\"Content-Type\" content=\"text/html; charset = utf -8\" /> < title >Untitled Document</ title > </ head > <? php // Criação da página index include(\"Funcionario.class.php\"); include(\"Contabilista.class.php\"); include(\"Programador.class.php\"); $ objpessfis = new Contabilista(); $objpessfis->nome = \"Carlos Buta\"; $objpessfis->datanasc = \"15 de Junho de 1987\"; $objpessfis->identificacao = \"002025701LA036\"; $objpessfis->salario = 2090; echo \"< h2 >Dados da Pessoa Física</ h2 >\"; echo \"Nome: \".$objpessfis->nome; echo \" \"; echo \"Data de Nascimento: \".$objpessfis->datanasc; echo \" \"; echo \"BI: \".$objpessfis->identificacao; echo \" \"; $objempresa = new Programador(); $objempresa->nome = \"Anacleto Bunga\"; $objempresa->datanasc = \"01 de Dezembro de 2004\"; $objempresa->identificacao = \"003215410LA021\"; $objempresa-> salario = 3560; $objempresa-> lingprog = \"PHP\"; echo \"< h2 >Dados do Programador</ h2 >\"; echo \"Nome: \".$objempresa->nome; echo \" \"; echo \"Data de Nascimento: \".$objempresa->datanasc; echo \" \"; echo \"BI: \".$objempresa->identificacao; echo \" \"; echo \"Salário: \".$objempresa->salario; echo \" \"; echo \"Linguagem de Programação: \".$objempresa-> lingprog; ?> < body > </ body > </ html > |

Anacleto Linux
Curtir tópico
+ 0
Responder
Posts
22/08/2016
Anacleto Linux
Há algo que não perguntei lá em cima: Com relação ao construtor das classes filhas é possível trabalhar assim ou tem outra forma melhor?
Obrigado a todos.
Obrigado a todos.
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)