En PHP, una tiendas de matriz indexada pares clave-valor de los datos mediante números enteros distintos de cero como claves. El primer elemento de la matriz tiene una clave de elementos cero y posterior están numerados consecutivamente . Una matriz que utiliza cadenas como claves se llama una matriz asociativa. Cuando se intenta acceder a un elemento de matriz con una clave de entero que se encuentra fuera de los límites de las claves válidas de una matriz , recibirá un error " Undefined offset " . El error equivalente a una matriz asociativa es un error " Undefined index " . Iniciando con la función de matriz
Una forma de crear una matriz en PHP es utilizar la función de " matriz" . Pasar una lista ordenada de elementos y PHP creará una matriz indexada de los elementos de partida con cero . Por ejemplo :
< php $ DayOfWeek = ? $ DayOfWeek [ 2 ] ; //imprime " mar " echo $ DayOfWeek [ 5 ] //imprime " vie "
Undefined offset
"indefinido " error de desplazamiento en PHP se produce cuando se intenta hacer referencia a un elemento de matriz con un valor de índice de matriz que no existe . Si usted es nuevo en la programación , es posible que se olvide de que las claves de elemento de conjunto indexado comienzan con cero, no una, y terminan con el número de elementos de la matriz menos uno. Por ejemplo , el siguiente código producirá un error " Undefined offset " en PHP porque la matriz " DayOfWeek " tiene siete elementos en índices cero al seis , no uno a siete :
echo $ DayOfWeek [ 7 ] ;
inicialización mediante una función
También puede inicializar una matriz estableciéndolo igual al valor de retorno de una función que devuelve un array, o por el paso de una matriz por referencia a una función que modificará la matriz. Por ejemplo :
$ array = initialize_array ( ) //una función que devuelve una matriz
Si no estás seguro de lo que es el último elemento de la matriz devuelta por la función y se intenta para acceder a un elemento de matriz después de la última clave de entero definida , recibirá un error " Undefined offset " .
evitar con conde
una forma de evitar una " ; Undefined offset "error es el control de las claves enteras que utiliza para utilizar para hacer referencia a los valores de la matriz con un bucle , como un" bucle de " . Utilice la función "count" para identificar el número de elementos de una matriz y crear un bucle "for " de elemento cero hasta el último elemento . Por ejemplo , el código siguiente se calcula el número de elementos de una matriz para crear un bucle que no excederá de los límites de matriz:
$ númdías = count ($ DayOfWeek ) ; //devuelve 7Porque ( $ i = 0 ; $ i <$ númdías ; $ i + +) echo "
" . $ DayOfWeek [$ i]. "< /li >"; //elementos numerados de cero a seis
Evitar Con el " isset " Función
Otra manera de evitar una " Undefined offset "error es utilizar la" función isset " . Esta función devuelve "true " o "false" dependiendo de si tiene un valor de matriz con la clave especificada . No va a desencadenar un error " Undefined offset " si el resultado es falso . Antes de intentar hacer referencia a un elemento de matriz , llamar a la función " isset " para ver si existe. Por ejemplo, el siguiente código aumenta un contador hasta que se alcanza una clave de matriz fuera de los límites de la matriz :
$ day = -1 , mientras que ( isset ($ DayOfWeek [ + + $ día ])) echo " < ; li > ". $ DayOfWeek [$ día ] . "< /li >";