Ver Mensaje Individual
  #5 (permalink)  
Antiguo 17/08/2009, 09:40
bigwhite
 
Fecha de Ingreso: agosto-2009
Mensajes: 247
Antigüedad: 15 años, 7 meses
Puntos: 10
Respuesta: Migracion hacia __set() y __get()

mil gracias GatorV pero en mi caso tengo diriamos una clase hija 'Bar' y el problema lo tengo al intentar acceder la los atributos implementados en $_attributes en la clase padre.

Ahi es que me falla y no me devuelve nada:

Código PHP:
class Bar extends Foo {

  public function 
__get($var){ 
      return 
parent::__get($var); 
    } 


Es lo mismo ? eso parece funcionar......aunque me quedan dudas.... porque por ejemplo no encuentro la forma de "settear" en la clase hija:

Código ejemplo:
Ver original
  1. <?
  2. class Foo {
  3.       protected $_attributes = array();
  4.  
  5.       public function __construct() {}
  6.  
  7.       public function __set($sVariable, $sData) {
  8.               $this->_attributes[$sVariable] = $sData;
  9.       }
  10.  
  11.       public function __get($sVariable) {
  12.               return $this->_attributes[$sVariable];
  13.       }
  14.  
  15.       public function dumpAttributes() {
  16.           echo '<pre>';
  17.               var_dump($this->_attributes);
  18.           echo '</pre>';             
  19.       }
  20. }
  21.  
  22. class Bar extends Foo {
  23.  
  24.   function __construct(){
  25.     $this->_attributes['foo']='otra cosa';
  26.   }
  27.  
  28.   public function __get($var){  
  29.       return parent::__get($var);  
  30.     }  
  31.  
  32. }
  33.  
  34. $bar = new Bar();
  35. $bar->foo = "baz";
  36. $bar->baz = "foo";
  37. $bar->anumber = 1;
  38.  
  39. $bar->dumpAttributes();
  40. ?>

Esto no cambia 'foo' en el array

Última edición por bigwhite; 17/08/2009 a las 09:53