Foros del Web » Programando para Internet » PHP »

advertencia de php: Notice: Uninitialized string offset: 0 in....

Estas en el tema de advertencia de php: Notice: Uninitialized string offset: 0 in.... en el foro de PHP en Foros del Web. Que tal! estoy aprendiendo sobre la generacion de graficos estadisticos en php, estoy utilizando la libreria pChart, si alguien esta interesado [URL="http://pchart.sourceforge.net/"]pChart [/URL], trato de ...
  #1 (permalink)  
Antiguo 26/03/2010, 10:12
 
Fecha de Ingreso: diciembre-2008
Mensajes: 32
Antigüedad: 15 años, 11 meses
Puntos: 0
advertencia de php: Notice: Uninitialized string offset: 0 in....

Que tal! estoy aprendiendo sobre la generacion de graficos estadisticos en php, estoy utilizando la libreria pChart, si alguien esta interesado [URL="http://pchart.sourceforge.net/"]pChart [/URL], trato de ejecutar los ejemplos incluso uno hecho por otra persona...[URL="http://arqonexus.hostzi.com/?p=78&cpage=1#comment-6"]esta aqui [/URL]...

Pero me sale la advertencia que les digo.. Notice: Uninitialized string offset: 0 in C:\wamp\...... este es el codigo y la linea donde me sale el error es el 126
Código PHP:
function AddPoint($Value,$Serie="Serie1",$Description="")
    {
     if (
is_array($Value) && count($Value) == 1)   //linea 119
      
$Value $Value[0];

     
$ID 0;
     for(
$i=0;$i<=count($this->Data);$i++)
      { if(isset(
$this->Data[$i][$Serie])) { $ID $i+1; } }  //linea 126 
encontre la causa de la advertencia en ingles pero no me ha quedado claro... "This error would occur if any of the following variables were actually strings or null instead of arrays, in which case accessing them with an array syntax $var[$i] would be like trying to access a specific character in a string:" Gracias por su ayuda...
  #2 (permalink)  
Antiguo 26/03/2010, 10:40
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: advertencia de php: Notice: Uninitialized string offset: 0 in....

Pues el error parece ser que Data o Data[$i] no es un vector (que es lo que espera el programa), sino una cadena. Esa es la causa del error.

Te sugiero hacer print_r o var_dump de $Data y $Data[$i] para ver qué es lo que sucede.


Saludos.
  #3 (permalink)  
Antiguo 26/03/2010, 14:29
 
Fecha de Ingreso: diciembre-2008
Mensajes: 32
Antigüedad: 15 años, 11 meses
Puntos: 0
Respuesta: advertencia de php: Notice: Uninitialized string offset: 0 in....

AlvaroG imprimi como me dijiste, y si es un arreglo, incluso de dos dimensiones, con print_r me salio esto:

Array ( [0] => Array ( [Edad] => 17 de edad [Name] => 0 ) [1] => Array ( [Edad] => 18 de edad [Name] => 1 ) [2] => Array ( [Edad] => 19 de edad [Name] => 2 ) [3] => Array ( [Edad] => 21 de edad [Name] => 3 ) [4] => Array ( [Edad] => 24 de edad [Name] => 4 ) )

y con var_dump:

array(5) { [0]=> array(2) { ["Edad"]=> string(10) "17 de edad" ["Name"]=> int(0) } [1]=> array(2) { ["Edad"]=> string(10) "18 de edad" ["Name"]=> int(1) } [2]=> array(2) { ["Edad"]=> string(10) "19 de edad" ["Name"]=> int(2) } [3]=> array(2) { ["Edad"]=> string(10) "21 de edad" ["Name"]=> int(3) } [4]=> array(2) { ["Edad"]=> string(10) "24 de edad" ["Name"]=> int(4) } }

alguna otra sugerencia...
  #4 (permalink)  
Antiguo 26/03/2010, 15:46
 
Fecha de Ingreso: diciembre-2008
Mensajes: 32
Antigüedad: 15 años, 11 meses
Puntos: 0
Respuesta: advertencia de php: Notice: Uninitialized string offset: 0 in....

Bueno ya pude eliminar la aparicion de esas advertencias y logro ver el grafico.... ya que las advertencias eran...

Uninitialized string offset: 0
Uninitialized string offset: 1

deduje que el problema estaba en los indices 0 y 1.. asi que en vez de
for($i=0;$i<=count($this->Data);$i++)
lo cambie a
for($i=2;$i<=count($this->Data);$i++)

no me gusta trabajar a ciegas, ni siquiera sé el porque del error, ya me funciona pero me gustaria saber el porque... en la cita que puse en ingles, logre medio entender que esto puede suceder cuando una intenta acceder a un array con valor nulo... pero imprimiendo la variable con print_r, se puede verificar que no esta nulo... en FIN, si alguien sabe el porque me lo dice por fa!
  #5 (permalink)  
Antiguo 29/08/2010, 20:17
 
Fecha de Ingreso: febrero-2006
Ubicación: vivó en Bogotá, Colombia
Mensajes: 6
Antigüedad: 18 años, 9 meses
Puntos: 0
Respuesta: advertencia de php: Notice: Uninitialized string offset: 0 in....

Este error puede ser de lógica. Cuando tienes una variable que tiene el mismo nombre que un array y la declaras justo después del array, haz un print_r justo después de la linea que te provoca el error.

Etiquetas: advertencia, offset, string
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:36.