martes, 30 de agosto de 2011

Warning: Cannot use a scalar value as an array (solución)

Vaya, en una aventura en PHP me encontré con este error el cual se vuelve un poco fastidioso y a veces difícil de entender porque puede producirse de una forma rara. Aca un ejemplo:

Si creamos un array de la siguiente forma:

$my_table[0] = "A value";
$my_table[1] = "Other value";

El código funcionará pero no siempre lo cual es algo raro, pero así es. La forma correcta será declarando la variable de forma correcta antes de ingresarle los valores:

$my_table = array();
$my_table[0] = "A value";
$my_table[1] = "Other value";

Esto solo conduce a ser más estricto al declarar ese tipo de variables.

6 comentarios:

  1. Mil gracias, me ayudó mucho :)

    ResponderEliminar
  2. Este error ocurre siempre y cuando hayas declarado previamente estas variables con algun valor, por ejemplo $my_table = 0; y despues si quieres usarla con un indice para asignar valores en un arreglo.

    ResponderEliminar
    Respuestas
    1. Si, tal cual pero también depende de la configuración del php del servidor. Es muy común que usando xamp, wamp, etc. no aparezcan esos errores, pero es muy diferente ya cuando estan en servidores linux online, etc.

      Eliminar
  3. A mi me paso y me costo perder toda una mañana. Pasa cuando usas el mismo nombre de variable para una variable y un arreglo, ej.

    $a = 0;

    despues de varias lineas de codigo

    $a[0] = 1;

    ResponderEliminar
  4. Por favor sabrías como solucionarlo? Gracias.
    A mí me sale:
    Warning: Cannot use a scalar value as an array in /usr/home/jorditournaturaicultura.cat/web/wp-includes/class.wp-scripts.php on line 204

    ResponderEliminar
  5. Esto se produce por utilizar un arreglo que ya tiene valores, debemos volver a inicializar la variable;

    ResponderEliminar