Foros del Web » Programando para Internet » PHP »

sacar variable fuera de una funcion

Estas en el tema de sacar variable fuera de una funcion en el foro de PHP en Foros del Web. Muy buenas Tengo el siguiente problemilla y la verdad que no se porque no me funciona He creado una funcion que va mirando los elementos ...
  #1 (permalink)  
Antiguo 27/04/2012, 14:49
Avatar de standby82  
Fecha de Ingreso: abril-2011
Mensajes: 29
Antigüedad: 13 años, 7 meses
Puntos: 0
sacar variable fuera de una funcion

Muy buenas
Tengo el siguiente problemilla y la verdad que no se porque no me funciona

He creado una funcion que va mirando los elementos de una array y si algún elemento esta vacio ejecuta un switch para saber que valor es el que esta vacio y los va guardando en otro array.

Luego le hago el bucle for a ese ultimo array y obtengo los elementos que estaban vacios.

El problema es que no consigo pasar el array final fuera de la función, para poder operar con el.

Os pongo el codigo y explico:
Código PHP:

$campos_form
=array($cat,$prov,$loca,$titulo,$descrip,$cambiarx,$cat_cambio,$nombre,$email);  //este es el array del cual busca si alguna de esas variables estan vacias

function comprobar_campos_rellenos($campos// la funcion para buscar la variables vacías y si es asi dependiendo su posicion añade a $campo_vacio[] el elemento correspondiente
{

for(
$a=0;$a<count($campos);$a++) 
        {
        
        if (empty(
$campos[$a]))    
            {
            
                switch(
$a)
                 {
                    case 
$error1="Categoria anuncio";
                    break;
                     case 
$error1="Provincia";
                    break;
                    case 
$error1="Localidad";
                    break;
                    case 
$error1="Titulo";
                    break;
                    case 
$error1="Descripción";
                    break;
                    case 
$error1="Cambiar por";
                    break;
                    case 
$error1="Categoria cambio";
                    break;
                    case 
$error1="Nombre";
                    break;
                    case 
$error1="Email";
                    break;
                }
// fin switch    
                
$campo_vacio[] =$error1
            
            
            }
//fin if
            
else
            {
            
//return;
            
}//fin else y del if
            
        
//fin del for
        
        
global $campo_vacio;
        return 
true;
}
// fin funcion 
-Lo que quiero es poder sacar la variable $campo_vacio fuera de la funcion para mas adelante realizar lo siguiente:

Código PHP:
if(comprobar_campos_rellenos($campos_form))
    {
    echo 
"Te falta de rellenar los siguientes campos:<br/>";
        for(
$x=0;$x<count($campo_vacio);$x++) 
        {                  
        echo 
$campo_vacio[$x]."<br/>";
        } 
//fin for
    
}
    else
    {
    echo 
"no devuelve nada";
    } 
Funcionar, me funciona todo correcto si la primera parte no la meto dentro de una función y lo hago todo seguido. El problema es que en la última parte del código la variable $campo_vacio esta vacía y no lo entiendo ya que arriba le digo que sea global.


Pienso que es una tontería, pero no doy con ello, a ver si alguien me lo puede explicar.

Gacias
  #2 (permalink)  
Antiguo 27/04/2012, 14:54
Avatar de malakian  
Fecha de Ingreso: septiembre-2010
Ubicación: $malakian->Colombia();
Mensajes: 469
Antigüedad: 14 años, 2 meses
Puntos: 45
Respuesta: sacar variable fuera de una funcion

Cita:
Iniciado por standby82 Ver Mensaje
Código PHP:

$campos_form
=array($cat,$prov,$loca,$titulo,$descrip,$cambiarx,$cat_cambio,$nombre,$email);  //este es el array del cual busca si alguna de esas variables estan vacias

function comprobar_campos_rellenos($campos// la funcion para buscar la variables vacías y si es asi dependiendo su posicion añade a $campo_vacio[] el elemento correspondiente
{

for(
$a=0;$a<count($campos);$a++) 
        {
        
        if (empty(
$campos[$a]))    
            {
            
                switch(
$a)
                 {
                    case 
$error1="Categoria anuncio";
                    break;
                     case 
$error1="Provincia";
                    break;
                    case 
$error1="Localidad";
                    break;
                    case 
$error1="Titulo";
                    break;
                    case 
$error1="Descripción";
                    break;
                    case 
$error1="Cambiar por";
                    break;
                    case 
$error1="Categoria cambio";
                    break;
                    case 
$error1="Nombre";
                    break;
                    case 
$error1="Email";
                    break;
                }
// fin switch    
                
$campo_vacio[] =$error1
            
            
            }
//fin if
            
else
            {
            
//return;
            
}//fin else y del if
            
        
//fin del for
        
        
return $campo_vacio;
}
// fin funcion 

Código PHP:
if($campo_vacio=comprobar_campos_rellenos($campos_form))
    {
    echo 
"Te falta de rellenar los siguientes campos:<br/>";
        for(
$x=0;$x<count($campo_vacio);$x++) 
        {                  
        echo 
$campo_vacio[$x]."<br/>";
        } 
//fin for
    
}
    else
    {
    echo 
"no devuelve nada";
    } 
Funcionar, me funciona todo correcto si la primera parte no la meto dentro de una función y lo hago todo seguido. El problema es que en la última parte del código la variable $campo_vacio esta vacía y no lo entiendo ya que arriba le digo que sea global.


Pienso que es una tontería, pero no doy con ello, a ver si alguien me lo puede explicar.

Gacias
te corregi unas cosas
__________________
Guitar Loco, Desarrollador Web PHP
Sigueme: @jose1x
  #3 (permalink)  
Antiguo 27/04/2012, 16:04
Avatar de standby82  
Fecha de Ingreso: abril-2011
Mensajes: 29
Antigüedad: 13 años, 7 meses
Puntos: 0
Respuesta: sacar variable fuera de una funcion

Juer!!!

Muchas gracias me funciona perfctamente, pero no entiedo muy bien lo de
Código PHP:
if($campo_vacio=comprobar_campos_rellenos($campos_form)) 
¿porque se iguala la variable $campo_vacio a la función ?
  #4 (permalink)  
Antiguo 27/04/2012, 16:10
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: sacar variable fuera de una funcion

Lo que se compara no es la función en si, se compara el resultado que devuelve.

Te sugiero documentarte un poco al respecto.
http://php.net/manual/en/functions.user-defined.php

Eso es posible en cualquier lenguaje de programación deberías saber.

En el caso que expones se asigna el resultado de la función a la variable.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 27/04/2012, 16:15
Avatar de standby82  
Fecha de Ingreso: abril-2011
Mensajes: 29
Antigüedad: 13 años, 7 meses
Puntos: 0
Respuesta: sacar variable fuera de una funcion

Muchas gracias por todo

Etiquetas: fuera, funcion, variables
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 13:11.