Ver Mensaje Individual
  #1 (permalink)  
Antiguo 16/07/2011, 19:45
MaxiSantos
 
Fecha de Ingreso: agosto-2009
Mensajes: 12
Antigüedad: 15 años, 3 meses
Puntos: 0
Pregunta Foreach y funcion count - Error

Saludos. Esta es una funcion que comprueba si se pasaron todos los datos de un formulario con el metodo post.

Código PHP:
Ver original
  1. if (filled_out($_POST))
  2. //codigo a realizar
  3. .
  4. .
  5. .

Pero hay algo que no comprendo del "foreach" o del "condicional if". Y es que cuando cuando le mando un array vacio, $a=array(), con la funcion count obtengo que el numero de elementos es == 0. Pero cuando quiero controlar esa condicion en el IF, ($contador == 0), no me lo toma como verdadero.

Código PHP:
Ver original
  1. function filled_out($form_vars)
  2. {
  3.   // comprueba que cada variable tiene un valor
  4.   $contador = count($form_vars);
  5.   foreach ($form_vars as $key => $value)
  6.   {            
  7.      if (!isset($key) || ($key === "") || ($value === "") || ($contador == 0) )))
  8.           {
  9.              echo "falso";
  10.              return false;
  11.            }                           
  12.    }
  13.           echo "True";
  14.           return true;                         
  15. }
  16.  
  17. $a=array();
  18. echo"<br />";
  19. echo "tamaño: ".(count($a))."<br />"; //arroja 0
  20. echo filled_out($a); //arroja True

La opción que utilice para que funcione es poner el condicional IF, ($contador == 0), fuera del loop foreach y en ese caso si funciono. Pero alguien podria explicarme, por favor, porque sucede este comportamiento en el condicional IF dentro del loop FOREACH ?. Gracias.