Ver Mensaje Individual
  #1 (permalink)  
Antiguo 08/05/2006, 05:14
Avatar de -=ArgoN=-
-=ArgoN=-
 
Fecha de Ingreso: octubre-2005
Ubicación: Barcelona, España
Mensajes: 843
Antigüedad: 18 años, 6 meses
Puntos: 1
La funcion parece no devolverme nada

Hola amigos y amigas.
Tengo un php con una funcion (checkonline) cuyos valores se devuelven con un return. Como tengo que devolver 3 valores lo que hago es almacenarlos los 3 en un mismo array y hacer: "return $array;".
Lo pueden ver a continuacion:

Código PHP:
<?
//aqui iria el inicio del php
function checkonline($dir$Y_inic$M_inic$D_inic$folder);
            
//[...]
            
}
        }
    }
    
$ret[0] = $tot_mem;
    
$ret[1] = $cont;
    
$ret[2] = $map_count;
    return 
$ret;
}
if(
$pwd==$PassWord){
    if(isset(
$Y_inic)&&isset($M_inic)&&isset($D_inic)){
        
checkonline($dir$Y_inic$M_inic$D_inic$folder);
        
$cont $ret[1];
        
$map_count $ret[2];
        echo 
"&maxonline=$tot_mem&";
        echo 
"<br><br><strong>Max players Online:</strong> <font color='#009900'><strong>".$tot_mem."</strong></font><br><br>";
        
$z 0;
        for(
$k=0;$k<$f_count;$k++){
            
$x $cont/$f_count;
            
$med intval($map_count[$k]/$x);
            echo 
"<strong>".$folder[$k]."</strong> online players average: <font color='#009900'><strong>$med</strong></font><br>";
            
$z += $med;
        }
        echo 
"<br><strong>TOTAL AVERAGE: <font color='#009900'>$z</font></strong>";
    }else{
        echo 
"<strong>Type a date.</strong>";
    }
}else{
    echo 
"<strong>Incorrect password.</strong>";
}
?>
El problema es que haciendo un echo antes del return de los 3 valores del array ($ret[0], $ret[1] y $ret[2]) aparece en pantalla lo que tiene que aparecer. En cambio cuando hace el "return", el siguiente codigo despues de "checkonline($dir, $Y_inic, $M_inic, $D_inic, $folder);" los valores $ret[0], $ret[1] y $ret[2] ya no poseen ningun valor.
Es como si la funcion no retornara nada de nada (y eso que comprobandolo con un echo dentro de la funcion devuelve lo que tiene que devolver...)
Increible, ya no se que puede estar pasando... Un apunte: la funcion checkonline tarda unos segundos (unos 10 seg) hasta que devuelve los valores (tiene que abrir y repasar unas 150000 linias de archivos .log). No influye en el codigo siguiente no?

Muchisimas gracias al afortunado que logre solventar mi duda

Adios,

ArgoN