fork download
  1. <?php
  2. class Usuario
  3. {
  4. private $nome;
  5. private $profissao;
  6.  
  7. public function setNome($nome)
  8. {
  9. $this->nome = $nome;
  10. return $this;
  11. }
  12.  
  13. public function setProfissao($profissao)
  14. {
  15. $this->profissao = $profissao;
  16. return $this;
  17. }
  18.  
  19. public function getNome($nome)
  20. {
  21. return $this->nome;
  22. }
  23.  
  24. public function getProfissao($profissao)
  25. {
  26. return $this->profissao;
  27. }
  28.  
  29. public function getValueByAttributeName($name)
  30. {
  31. if (property_exists($this, $name)) {
  32. return $this->$name;
  33. }
  34. }
  35.  
  36. public function getValueByMethodName($name)
  37. {
  38. $name = $name.'()';
  39.  
  40. if (method_exists($this, $name)) {
  41. return $this->$name;
  42. }
  43. }
  44.  
  45. public function getAllAttributes()
  46. {
  47. $array = array();
  48.  
  49. foreach ($this as $key => $value) {
  50. if (property_exists($this, $key)) {
  51. $array[] = array($key => $value);
  52. }
  53. }
  54. return $array;
  55.  
  56. }
  57. }
  58.  
  59. $usuario = new Usuario;
  60.  
  61. $usuario->setNome('Nome Qualquer');
  62. $usuario->setProfissao('Profissão Qualquer');
  63. $data = $usuario->getAllAttributes();
  64.  
  65. echo 'Exemplo de listar tudo: <pre>';
  66. print_r($data);
  67. echo '</pre><br>Exemplo por método:<br>';
  68. echo '--->'.$usuario->getValueByMethodName('getnome');
  69. echo '<br>';
  70. echo '--->'.$usuario->getValueByMethodName('getprofissao');
  71. echo '<br>Exemplo por atributo:<br>';
  72. echo '--->'.$usuario->getValueByAttributeName('nome');
  73. echo '<br>';
  74. echo '--->'.$usuario->getValueByAttributeName('profissao');
Success #stdin #stdout 0.02s 52480KB
stdin
Standard input is empty
stdout
Exemplo de listar tudo: <pre>Array
(
    [0] => Array
        (
            [nome] => Nome Qualquer
        )

    [1] => Array
        (
            [profissao] => Profissão Qualquer
        )

)
</pre><br>Exemplo por método:<br>---><br>---><br>Exemplo por atributo:<br>--->Nome Qualquer<br>--->Profissão Qualquer