PHP: “Notice: Undefined variable”, “Notice: Undefined index”, y “Notice: Undefined offset” ¿Qué quiere decir?

publicado por: Anonymous

Cuando una noticia (notice) ocurre, el código puede funcionar, pero es posible que no muestre lo que esperamos.

Creo que estos son los tres tipos de noticias que podemos tener con más frecuencia en PHP.

  • Notice: Undefined variable

  • Notice: Undefined index

  • Notice: Undefined offset

¿Qué significan estas tres noticias y qué es lo que podría generarlas?

Nota:

Esta pregunta existe en SO en Inglés, la idea es tener una buena respuesta también en español que ayude a entender problemas que PHP nos muestra siempre en inglés.

solución

Notice: Undefined variable ocurre cuando usas una variable en una operación, pero dicha variable no se ha definido con anterioridad. Por ejemplo:

<?php
    $a1 = "Hola Caracola";
    print_r($a2); // $a2 no se ha definido antes (a veces causado por errores tipográficos)

Notice: Undefined offset ocurre cuando en un array intentas acceder a un índice numérico que no existe en ese array. Por ejemplo:

<?php
    $miArray = array(1,2,3); // 3 posiciones, índices del 0 al 2
    print_r($miArray[3]);    // Acceso al índice 3 que no existe (PHP empieza en 0)

Notice: Undefined index ocurre cuando en un array intentas acceder a un índice alfanumérico que no existe. Un par de ejemplos:

<?php
    $miArray = array(0 => "Hola", "b" => "Caracola");
    print_r($miArray["a"]); // El índice `a` no existe, sólo `0` o `b` 

    print_r($_GET["parametroQueNoExisteEnElQueryString"]);
Respondido por: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *