domingo, junio 10, 2007

Array, que cosa curiosa.

Los array's en PHP son algo curiosos y ahora gracias al libro de la Certificación de PHP descumbro algunas curiosidades nuevas (que hablare en otro post). En este post quiero mostrar algo bastante curioso, que había leído hace algún tiempo pero había olvidado.

$a = array(0 => 1,
1 => 2,
2 => 3,
3 => 'a',
4 => 'b',
5 => 'c',
6 => NULL);

if(isset(
$a[0]))
echo
'Existe $a[0].<br>';
else
echo
'No existe $a[0].<br>';

unset(
$a[0]);

if(isset(
$a[0]))
echo
'Existe $a[0].<br>';
else
echo
'No existe $a[0].<br>';

if(isset(
$a[6]))
echo
'Existe $a[6].<br>';
else
echo
'No existe $a[6].<br>';

if(
array_key_exists(6, $a))
echo
'Existe $a[6].<br>';
else
echo
'No existe $a[6].<br>';

Y esto es lo que devuelve:

Existe $a[0].
No existe $a[0].
No existe $a[6].
Existe $a[6].

Como pueden ver en la tercera comprobación no devuelve lo que espera... isset() sirve con variables, pero cuando estamos comprobando los elemento de un array hay que tener cuidado de que este no sea un NULL ya que sino isset devolvera un False. La forma de evitarlo es usando array_key_exists(), aunque nunca me acostumbre a utilizar esta función, empezare a utilizarla puede que algún día me salve de un error que sería muy difícil de localizar.

Dario Ocles.