Foros del Web » Programando para Internet » PHP » Frameworks y PHP orientado a objetos »

Problema con arreglo como variable de clases

Estas en el tema de Problema con arreglo como variable de clases en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Este es uno de esos problemas que parecen tontos pero que la solucion se hace inexplicablemente cuesta arriba. La cosa es que tengo una variable ...
  #1 (permalink)  
Antiguo 12/05/2008, 17:56
 
Fecha de Ingreso: abril-2007
Mensajes: 23
Antigüedad: 17 años
Puntos: 0
Sonrisa Problema con arreglo como variable de clases

Este es uno de esos problemas que parecen tontos pero que la solucion se hace inexplicablemente cuesta arriba.
La cosa es que tengo una variable dentro de una clase (estoy trabajando en php4) que necesito trabajar como un arreglo, todo parece funcionar bien pero cuand intento acceder a la variable desde un objeto de esa clase pareciera que los valores desaparecen.

Espero que se entienda el problema.
Muchas gracias por su ayuda.
  #2 (permalink)  
Antiguo 12/05/2008, 18:04
Avatar de Marvin
Colaborador
 
Fecha de Ingreso: febrero-2005
Ubicación: global $Chile->Santiago;
Mensajes: 1.991
Antigüedad: 19 años, 3 meses
Puntos: 81
Re: Problema con arreglo como variable de clases

Podrias poner tu codigo... y quiero saber si te ha funcionado trabajar con clases sin tener problemas en php4.

Suerte!
__________________
El que dice "Solo sé que nada sé", esta asumiendo que sabe algo.
Lea las FAQ's!
  #3 (permalink)  
Antiguo 12/05/2008, 18:13
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Re: Problema con arreglo como variable de clases

es necesario ver la clase en cuestion, ya que las variable declaradas...

var $foo;

se leen/modifican dentro de metodos usando $this->foo (sino, pon el codigo... haber ke es)
  #4 (permalink)  
Antiguo 14/05/2008, 12:14
 
Fecha de Ingreso: abril-2007
Mensajes: 23
Antigüedad: 17 años
Puntos: 0
Sonrisa Re: Problema con arreglo como variable de clases

Ok, gracias a ambos, aquí les pongo la clase con su constructor:

Código PHP:
class Usuario
    
{
        var 
$id;
        var 
$rif;
        var 
$rif_prefijo;
        var 
$rif_numero;
        var 
$nick;
        var 
$rol;        
        var 
$nombres;
        var 
$apellidos;
        var 
$direccion;
        var 
$email;
        var 
$telefonos;        
        var 
$status;
        var 
$semanas;
        
        
        function 
Usuario($id)
        {
            
$query=operacionSQL("SELECT * FROM Usuario WHERE id='".$id."'");
            
$this->id=$id;
            
$this->rif=mysql_result($query,0,1);
            
$this->nick=mysql_result($query,0,2);
            
$this->rol=mysql_result($query,0,4);
            
$this->nombres=mysql_result($query,0,5);
            
$this->apellidos=mysql_result($query,0,6);
            
$this->direccion=mysql_result($query,0,7);
            
$this->email=mysql_result($query,0,8);
            
$this->telefonos=mysql_result($query,0,9);
            
$this->status=mysql_result($query,0,10);
            
            
$this->rif_prefijo=$this->rif[0];
            
$this->rif_numero=substr($this->rif,2,strlen($this->rif)-2);
            
            
            
$query=operacionSQL("SELECT id_semana,status FROM Usuario_Semana WHERE id_usuario='".$id."'");
            
$l=mysql_num_rows($query);
            
            
            for (
$i=0;$i<$l;$i++)
            {    
                
$this->$semanas[$i]['id']=mysql_result($query,$i,0);
                
$this->$semanas[$i]['status']=mysql_result($query,$i,1);                
            }
            
        } 
El problema esta al final del constructor, en el ciclo for que es donde armo el arreglo. Si hago un echo de lo qu voy guardando en el arreglo en el propio constructor me lo imprime sin problemas, pero al tratar de accederlo desde el objeto una vez creado no obtengo nada.

Marvin, no llevo mucho tiempo trabajando con clases en PHP y como el hosting con el que estoy trabajando es php4 defino las clases de manera muy sencilla, basicamente variaables y funciones sin considerar public, private, static ni nada de eso. Hasta ahora me ha ido bien.

Gracias por su auyuda.
  #5 (permalink)  
Antiguo 14/05/2008, 14:32
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Re: Problema con arreglo como variable de clases

Hola vmgafrm,

Tu problema es al llamar a $this->$semanas, debe de ser de esta forma $this->semanas, recuerda que cuando llamas a variables no debes de usar $ dentro del objeto si ya estas usando $this.

Tema trasladado a PHP Orientado a Objetos.
  #6 (permalink)  
Antiguo 14/05/2008, 14:43
 
Fecha de Ingreso: abril-2007
Mensajes: 23
Antigüedad: 17 años
Puntos: 0
Sonrisa Re: Problema con arreglo como variable de clases

Muchas gracias Gator, pero no es ese el problema, lo que sucede es que lo copie rapido para montarlo aqui, si se fija el resto de las variables de la clase las trato como $this->variable.
  #7 (permalink)  
Antiguo 14/05/2008, 14:46
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Re: Problema con arreglo como variable de clases

Pero particularmente tu variable semanas es la que lees así: $this->$semanas, y debe de ser $this->semanas.

Por otro lado te recomiendo inicializar la variable antes del for con $this->semanas = array();

Saludos.
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 06:05.