Foros del Web » Programando para Internet » PHP »

Problema con sobrecarga en poo

Estas en el tema de Problema con sobrecarga en poo en el foro de PHP en Foros del Web. haber si alguien me puede sacar la duda o decirme si esto es un bug una clase en la cual defino algunas variables privadas Código ...
  #1 (permalink)  
Antiguo 20/12/2013, 03:26
 
Fecha de Ingreso: mayo-2009
Ubicación: Japon
Mensajes: 60
Antigüedad: 15 años, 6 meses
Puntos: 12
Pregunta Problema con sobrecarga en poo

haber si alguien me puede sacar la duda o decirme si esto es un bug

una clase en la cual defino algunas variables privadas

Código PHP:

class user extends userConnector
{
  
// variables privadas
  
private $id$extends = array();
   
  
// función constructora
  
public function __construct($user$pass)
  {
       
// retorna un estado
       
$this->id parent::getLogin($user$pass);
  }
  
  
// función de sobre carga
  
public function __set($prop$value)
  {
      
$exteds[$prop] = $value
  
}
}

$object = new user('user''pass')
$object->test 'asdasd';


// imprime en extends [... extends => array(id => -1, test=>'asdasd') ...],
print_r($object
alguien sabe el porque?
  #2 (permalink)  
Antiguo 20/12/2013, 10:50
 
Fecha de Ingreso: diciembre-2013
Mensajes: 2
Antigüedad: 10 años, 11 meses
Puntos: 0
Respuesta: Problema con sobrecarga en poo

Hola,

Mira acá

Código:
  // función de sobre carga 
  public function __set($prop, $value) 
  { 
      $exteds[$prop] = $value 
  }
estas utilizando "exteds" en lugar de "extends". ¿Tal ves este sea el error?

Saludos,
  #3 (permalink)  
Antiguo 20/12/2013, 15:09
 
Fecha de Ingreso: mayo-2009
Ubicación: Japon
Mensajes: 60
Antigüedad: 15 años, 6 meses
Puntos: 12
Respuesta: Problema con sobrecarga en poo

gomaliquida, gracias por tomarte el tiempo de responder.

no, ese codigo es un ejemplo (la libreria real tiene mas de 1K de lineas, y postear todo, creo que a mas de uno le dara dolor de cabeza...)

te explico, cuando intento cargar la variable $this->id, este me guarda la variable id dentro del array $this->extends nose si se entiende

llamar a una variable privada desde un contexto externo llama a __set, sin embargo si llamo desde un contexto dentro de la misma clase, tambien lo hace, por eso la duda, ¿es un bug o estoy haciendo mal el proceso?

la variable id es interna al conjunto usuario, no modificable y las variables sobrecargadas son modificables (asi darle flexibilidad al objeto), si el id se escribe dentro de extends, se vuelve modificable (cosa que no quiero que pase)

no encontre forma de obtener el contexto desde el cual se llama al metodo (trace-debug es una forma bastante "fea" asi que la descarte)

si alguien tiene alguna idea, es bienvenid@

Etiquetas: poo, sobrecarga, variable
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:11.