Guest User

Untitled

a guest
Oct 6th, 2013
221
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.54 KB | None | 0 0
  1. /** Property para php
  2. * ésto fué escrito por alexander171294 - [H]arkonnen
  3. * como parte del módulo BBParser 1.1.0
  4. * @ Contact: [email protected]
  5. */
  6. trait MyProperty // mi hermosa clase property
  7. {
  8. // llamando a funciones setters
  9. Public function __set($property, $value)
  10. {
  11. if(is_callable(array($this, 'set_'.$property), $value))
  12. @return call_user_func(array($this, 'set_'.$property), $value);
  13. else
  14. // no hay funcion setter para este atributo (o no existe el atributo)
  15. return false;
  16. }
  17.  
  18. // llamando a funciones getters
  19. Public function __get($property)
  20. {
  21. if(is_callable(array($this, 'get_'.$property)))
  22. return call_user_func(array($this, 'get_'.$property));
  23. else
  24. // no hay funcion getter para este atributo (o no existe el atributo)
  25. return false;
  26. }
  27. }
  28.  
  29. /* implementación de ejemplo: */
  30.  
  31. Class prueba
  32. {
  33. use MyProperty;
  34. private $ejemplo = 0; // variable privada a la que accederemos
  35.  
  36. // getter
  37. private get_ejemplo()
  38. {
  39. return $ejemplo;
  40. }
  41.  
  42. // setter
  43. private set_ejemplo($value)
  44. {
  45. $this->ejemplo = $value;
  46. }
  47. }
  48.  
  49. $example = new prueba();
  50.  
  51. $example->ejemplo = 2;
  52. echo $example->ejemplo;
  53.  
  54. // como verán, se puede acceder al atributo privado aparentemente "directamente" no obstante, previamente el código llama a las funciones getters y setters para los atributos privados a los que queremos acceder, por lo tanto no viola los principios de encapsulamiento :)
Advertisement
Add Comment
Please, Sign In to add comment