2011-08-05 11 views
5

Si tengo una matriz en PHP que actualmente es nula, ¿no debería acceder a un índice indefinido presentar un error de nivel E_NOTICE?Comportamiento de índice no definido

Si tengo el siguiente fragmento de código:

$myArray = null; 
echo $myArray['foo']['bar']; 

Yo esperaría un error pero corre sin problemas. He verificado que mi nivel de registro esté configurado en E_ALL. ¿Hay algo que me falta o PHP está feliz de devolver nulo para los índices indefinidos, siempre y cuando no intente modificar los datos?

+0

intente visitar bugs.php.net En cuanto a mí, es un comportamiento extraño. $ myArray = array(); echo $ myArray ['foo'] ['bar']; Obtiene el error porque creo que – RiaD

+0

@Dan W: FabioG, es correcto. – linguini

+0

@RiaD: Ningún error encontrado. http://www.meandeviation.com/tutorials/learnphp/php-syntax-check/v4/do-syntax-check.php – linguini

Respuesta

3

Sí, el índice indefinido solo se activa para variables no nulas (no me pregunte por qué). Esto activará un aviso:

<?php 
    error_reporting(E_ALL); 
    $myArray = array(); 
    echo $myArray['foo']['bar']; 
?> 
2

no, no muestra ningún error cuando $ myArray está configurado como nulo. si es una matriz vacía o cualquier otro valor a excepción de nulo, entonces devuelve un error de nivel E_NOTICE. en verdad no sé por qué pero es como es.

+1

acaba de probar y tienes razón. La configuración a null no da error, pero una matriz vacía sí lo hace. –

Cuestiones relacionadas