Foros del Web » Programando para Internet » PHP »

problemas con return de un array

Estas en el tema de problemas con return de un array en el foro de PHP en Foros del Web. Hola usuarios de forosdelweb, me ha surgido una duda, que despues de toda la tarde no logro resolver, expongo el código para ver si algún ...
  #1 (permalink)  
Antiguo 17/12/2009, 12:23
Avatar de karlic0s  
Fecha de Ingreso: abril-2007
Ubicación: Cartagena (Murcia)
Mensajes: 241
Antigüedad: 17 años
Puntos: 18
problemas con return de un array

Hola usuarios de forosdelweb, me ha surgido una duda, que despues de toda la tarde no logro resolver, expongo el código para ver si algún alma caritativa puede ayudarme:

Código PHP:
function unidades_a($var){
    if (
$var == "esto" )
        {

            
$datosa[] = array();
            
$datosa[0] = "1";
            
$datosa[1] = "3"
            
$datosa[2] = "3";
            
$datos[3] = "";
return 
$datosa[0];
return 
$datosa[1];
return 
$datosa[2];
return 
$datosa[3];

} else {

return 
false;

}

cuando llamo a la funcion asi:

Código PHP:
unidades_a(esto);
echo 
"$datosa[0]"
echo "$datosa[1]"
echo "$datosa[2]"
echo "$datosa[3]" 
datosa me aparece indefinida y no logro que quede definida, alguna solucion?

Gracias de antemano y un saludo


______________


Añado: si hago un echo dentro de la funcion si que me saca correctamente la variable, pero al llamarla a traves de la función no.
  #2 (permalink)  
Antiguo 17/12/2009, 12:30
Avatar de Sergiorelativo  
Fecha de Ingreso: diciembre-2009
Ubicación: Cadiz
Mensajes: 259
Antigüedad: 14 años, 4 meses
Puntos: 6
Respuesta: problemas con return de un array

Cuando haces un return, el hilo de ejecución de dicha función se corta en esa linea, y el código que hay debajo del return no se tiene en cuenta. Para hacer lo que intentas sería de esta manera:

Código PHP:
function unidades_a($var){
    if (
$var == "esto" )
        {

            
$datosa[] = array();
            
$datosa[0] = "1";
            
$datosa[1] = "3"
            
$datosa[2] = "3";
            
$datos[3] = "";

            return 
$datosa;

} else {

return 
false;

}

Y lo puedes recoger asi:

Código PHP:
$datosa unidades_a(esto);

if( 
$datosa !== false )
{
echo 
"$datosa[0]";
echo 
"$datosa[1]";
echo 
"$datosa[2]";
echo 
"$datosa[3]";

Espero que sea la respuesta que te ayude. ¡Saludos!

Última edición por Sergiorelativo; 17/12/2009 a las 12:32 Razón: Añadir codigo if false
  #3 (permalink)  
Antiguo 17/12/2009, 12:33
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: problemas con return de un array

karlic0s, te sugiero leer el manual de PHP al respecto:
http://php.net/manual/en/language.functions.php

suerte!!
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #4 (permalink)  
Antiguo 17/12/2009, 12:33
Avatar de karlic0s  
Fecha de Ingreso: abril-2007
Ubicación: Cartagena (Murcia)
Mensajes: 241
Antigüedad: 17 años
Puntos: 18
Respuesta: problemas con return de un array

Justamente es eso, no cai en poner $datosa = unidades_a(esto); muchiisiimas gracias!!!

+1
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 08:59.