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

Problema con dos arrays (se sobreescriben)

Estas en el tema de Problema con dos arrays (se sobreescriben) en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Hola amigos, tengo un problema que no sé como solucionar. Llevo horas dándole vueltas pero no tiene ningún sentido. Resulta que tengo una clase Mensaje.php ...
  #1 (permalink)  
Antiguo 18/12/2010, 08:51
Avatar de Samie  
Fecha de Ingreso: mayo-2009
Mensajes: 27
Antigüedad: 15 años
Puntos: 2
Problema con dos arrays (se sobreescriben)

Hola amigos, tengo un problema que no sé como solucionar.

Llevo horas dándole vueltas pero no tiene ningún sentido.

Resulta que tengo una clase Mensaje.php que tiene dos métodos: obtener_mensajes_enviados y obtener_mensajes_recibidos
que hacen consultas a la base de datos y devuelven arrays con objetos mensaje

Tengo además otro método obtener_mensajes_enviados que hace dos llamadas a los otros métodos así:

$arr_rec=$this->obtener_mensajes_recibidos();
$arr_env=$this->obtener_mensajes_enviados();

Si yo hago

Código PHP:
    public function obtener_mensajes(){  
        require_once 
'models/UsuarioModel.php'

        
session_start();
        
$usuario=$_SESSION['usuario'];
        
$id_usuario=$_SESSION['usuario']->get_id();
        
        
$arr_rec=Array();
    
$arr_env=Array();

        
$arr_rec=$this->obtener_mensajes_recibidos();

        echo 
'<br />';

    
print_r($arr_rec);
        echo 
'<br />';
        echo 
'<br />';    
    
        
$arr_env=$this->obtener_mensajes_enviados();
       
        
print_r($arr_env);
    
    } 
me lo imprime bien, pero si hago:

Código PHP:
    public function obtener_mensajes(){  
        require_once 
'models/UsuarioModel.php'

        
session_start();
        
$usuario=$_SESSION['usuario'];
        
$id_usuario=$_SESSION['usuario']->get_id();
        
        
$arr_rec=Array();
    
$arr_env=Array();

        
$arr_rec=$this->obtener_mensajes_recibidos();

        echo 
'<br />';

    
        
$arr_env=$this->obtener_mensajes_enviados();
       
    
print_r($arr_rec);
        echo 
'<br />';
        echo 
'<br />';    

        
print_r($arr_env);
    
    } 
imprime lo mismo (lo que devielve el segundo método) en ambos arrays (nótese la diferencia de que ahora se imprime despues de $arr_env=$this->obtener_mensajes_enviados();

Es como si el segundo método sobreescribiera la referencia a los objetos contenidos en ese array o algo asi

Nunca me había pasado en PHP algo parecido, alguien tiene alguna idea de que puede ser??

Muchas gracias
  #2 (permalink)  
Antiguo 20/12/2010, 05:09
 
Fecha de Ingreso: diciembre-2010
Mensajes: 61
Antigüedad: 13 años, 4 meses
Puntos: 4
Respuesta: Problema con dos arrays (se sobreescriben)

Puedes poner las funciones:

obtener_mensajes_recibidos();
obtener_mensajes_enviados();

y si cambias el orden de los arrays;

$arr_env=$this->obtener_mensajes_enviados();
$arr_rec=$this->obtener_mensajes_recibidos();

me imagino que te aparezcan los de recibidos;

Última edición por yop289; 20/12/2010 a las 05:41

Etiquetas: arrays, dos
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:16.