Autor | Zpráva | ||
---|---|---|---|
Dlahacz Profil * |
#1 · Zasláno: 21. 8. 2014, 15:03:40
Zdravím ,
vyskytla se mi hodně podivná chyba s kterou si nevím rady Fatal error: Cannot redeclare loop() (previously declared in /var/www/subdom/royal/app/class/data.php:61) in /var/www/subdom/royal/app/class/data.php on line 61 jestli to dobre chapu tak nemuzu deklarovat funkci loop v souboru data.php na radce 61 protoze je jiz deklarovana v tom samem souboru na stejne radce, coz mi nedava vubec smysl. Diky za rady. kdyztak kod : public static function getChildArray($parrent, $table = "categories"){ function loop($id){ $ids = array(); if(data::getCategoryArray($id)){ foreach(data::getCategoryArray($id) as $cat){ $ids[] = $cat["id"]; $ids = $ids + loop($cat["id"]); } } return $ids; } $vysledek = (array)$parrent + loop($parrent); return $vysledek; } |
||
Tori Profil |
#2 · Zasláno: 21. 8. 2014, 15:07:05
Asi se ten soubor opakovaně includuje - používejte include_once / require_once.
|
||
Dlahacz Profil * |
#3 · Zasláno: 21. 8. 2014, 15:12:27
soubor mam includovany pouze jednou a navíc pomocí pomocí require_once, ale teď jsem ješte zjistil že se ten error zobrazuje pouze kdyz volam getChildArray ze stejné třídy, kdyz volam data::getChildArray(); z kamakoliv jinama tak to funguje správně
|
||
Radek9 Profil |
Dlahacz:
Je moudré definovat funkci uvnitř funkce? Chyba pravděpodobně nastává při druhém volání metody getChildArray . V tu chvíli je už totiž funkce loop definována z předchozího volání.
Jinak, třeba v JavaScriptu by ti tohle prošlo, protože tam se funkce ukládají do aktuální scope. V PHP se však ukládají přímo do namespace. |
||
Časová prodleva: 10 let
|
0