Ver Mensaje Individual
  #17 (permalink)  
Antiguo 12/01/2009, 23:24
okram
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Impedir que se reenvíen los datos al regargar la página

Cita:
Iniciado por pateketrueke Ver Mensaje
osea... que si esta vacío el array, debe estar "empty" jeje... ¿eso significa no???
Como ambos decimos cual Padre Nuestro: "Funciona, pero no es lo correcto". empty() sirve para verificar el contenido de una variable tipo string. Si le pasas como argumento un array, por ejemplo, entonces el intérprete de PHP trata de convertir esta variable en un string.

Ahora, trata de imprimir un array ($arr) haciendo simplemente echo $arr;. Obtienes la palabra "Array", y eso no significa que $arr sea un string que tiene como contenido esa palabra, sino que el intérprete en un intento por ejecutar lo que el código le pide le asigna ese valor.

Dado que $_POST es un array que se "crea" sólo cuando el request fue de tipo POST, empty($_POST); será verdadero cuando el array $_POST no existe, y eso sucederá cuando el request no fue POST. Es como querer hacer un empty($foo) cuando $foo no está seteada.

Si el request es de tipo POST, entonces $_POST existe y es un array. empty($_POST) devolverá entonces falso, pues es el equivalente de empty("Array");. Si me entendiste, te darás cuentas que nada tiene que ver con número de elementos o cosas así.

Te pongo otro similar. $query = mysql_query('...');. Si la query fue exitosa entonces empty($query) devolverá falso, pues es equivalente a empty("Resource #N");. Por el contrario, si la query es incorrecta, $query tomará el valor de false, y empty(false) es verdadero. Igual funciona si queremos verificar la ejecución de X consulta no?

Hombre, qué simple que es PHP, si empty() nos hace todo