Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] problem z eval
Forum PHP.pl > Forum > Przedszkole
adasiu
Witam,

mam mały problem z funkcją eval() a mianowicie przy użyciu tej funkcji tworzę tablice. Wszystko jest ok dopóki nie tworzę tablic więcej niż dwuwymiarowych. Wtedy następuje błąd.


  1. $ka[9] = 'ok';
  2. $ka[4] = 'ok';
  3. $ka[3][8] = 'ook';
  4. $ka[3][7] = 'ook';
  5. $ka[3][6] = 'fvggshfd';
  6.  
  7. Fatal error: Cannot use string offset as an array in /var/www/test/application/controllers/katalog.php(417) : eval()'d code on line 1


pozdr.
wNogachSpisz
Cannot use string offset as an array

Bo widzisz, jak masz string, to dostęp do poszczególnych bajtów możesz uzyskać na kilka sposobów:

$string{id}
$string[id]
substr(0,1,$string)


sprobuj zamiast [6] dac ['6'], powinno pomoc.

adasiu
Taka zmiana niczego nie zmieni...
wNogachSpisz
Ponieważ?

To może inaczej, daj prawdziwy kod, bo ten u góry nie używa EVAL'a

adasiu
  1. eval("$ka[9] = 'ok';");
  2. eval("$ka[4] = 'ok';");
  3. eval("$ka[3][8] = 'ook';");
  4. eval("$ka[3][7] = 'ook';");
  5. eval("$ka[3][6] = 'fvggshfd';");
  6. eval("$ka[3][6][11] = 'nic';");
  7.  
  8. Fatal error: Cannot use string offset as an array in /var/www/test/application/controllers/katalog.php(417) : eval()'d code on line 1


na ostatnim się wysypuje.
wNogachSpisz
No bo zobacz, w tym miejscu:

eval("$ka[3][6] = 'fvggshfd';");

definiujesz $ka[3][6] jako STRING 'fvggshfd'

potem dajesz $ka[3][6][11] = 'nic';

wiec jasne jest, ze php wstawi w 11 znaku stringu $ka[3][6] literke 'n'



nie wiem dokladnie co ma robic twoja aplikacja, ale ze stringa arraya nie ukrecisz biggrin.gif

adasiu
racja winksmiley.jpg teraz załapałem -- plus dla Ciebie. thx
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.