Autor Zpráva
BaTeCzKo
Profil
Tohle:

function anchor($input){
$find=array('&quot;', '~', '!', '@', '#', '$', '%', '^', '&', '*', '(', ')', '-', '_', '=', '+', '[', ']', '{', '}', ';', ':', '"', ',', '.', '<', '>', '/', '?', '\\');
$input=str_replace($find, '', $input);
strtr($input, " éěÉĚřŘťŤžŽúÚůŮüÜíÍóÓáÁšŠďĎýÝčČňŇäÄĺĹľĽŕŔöÖ", "_eeEErRtTzZuUuUuUiIoOaAsSdDyYcCnNaAlLlLrRoO");
$input=strtolower($input);
return $input;
}

$anchor=anchor($m_anchor);


Hlásí chybu:

Fatal error: Cannot redeclare anchor() (previously declared in /3w/xf.cz/t/tech/modules/menu.php:17) in /3w/xf.cz/t/tech/modules/menu.php on line 17

Proč?
Acci
Profil
Vypadá to, že v souboru menu.php máš funkci se stejným názvem
BaTeCzKo
Profil
nemam, zkousel jsem to prejmenovat a nepomohlo to
Acci
Profil
Tak možná soubor menu.php někde vkládáš dvakrát.
llook
Profil
Určitě soubor menu.php vkládáš dvakrát. To znamená, že se celý dvakrát provádí a mimojiné se tím dvakrát pokoušíš deklarovat tu samou funkci.
Nejrychleji to napravíš tak, že tu deklaraci zabalíš do podmínky:
if (!function_exists('anchor')) {

function anchor($input) {
... tady bude ta tvoje funkce ...
}
}

Nejlepší je ale funkce ukládat zvlášť a vkládat je pak pomocí require_once.
BaTeCzKo
Profil
llook
Díky to problém vyřešilo. Ale nechápu jak je možné, že se to menu.inc provádí více než jednou, když ho do indexu includuju jen jednou. :P
BaTeCzKo
Profil
Ja jsem *****!! Ja to strcil do while() :D :D

Edit: Hmmm... cenzura sprostých slov. Drsné! :D
WanTo
Profil
Ani jsem nevěděl, že v PHP jdou dělat takové zrůdnosti, jako je vkládání funkcí do cyklů :-)
souki
Profil
WanTo
taky jsem na to přišel omylem.. příkaz function je příkaz jako každý jiný a tam můžeš v cyklu vytvářet fce s drobnými obměnami => jak se stat prasetem snadno a rychle =)
souki
Profil
btw.... nemáš tam náhodou mít
$input = strtr(.......
BaTeCzKo
Profil
souki
Jo to taky, ale na to jsem přišel sám.
Toto téma je uzamčeno. Odpověď nelze zaslat.