Autor Zpráva
MilanJ
Profil
Co znamená hláška:
Fatal error: Cannot redeclare otevridb() in /www/doc/www/otevridb.php on line 1 ?

otevridb.php je script, který se zařídí napojení na DB, funguje bez problémů
Hugo
Profil
MilanJ

To znamená, že jednu funkci (otevridb) deklaruješ dvakrát.
MilanJ
Profil
Ale k zavření spojení s DB došlo, tak ji snad mohu otevřít znovu v jednom scriptu, ne?
Leo
Profil
To ano, volat fci muzete kolikrat chcete, ale ne ji dvakrat deklarovat. Leo
MilanJ
Profil
F-ci mám v ext. souboru a vkládám ji pomocí INCLUDE, vrací hodnotu TRUE nebo FALSE podle toho, jestli naváže nebo nenaváže spojení.
Jak tedy docílit toho, abych ji mohl zavolat znovu a nedošlo k opětovné deklaraci?

Obsah souboru otevridb.php

<?php function OtevriDB($hostitel = "uvdb2.globe.cz", $uziv_jmeno = "", $heslo = "",
$DB = "db")
{
$navratova_hodnota = false;
$spojeni = mysql_connect($hostitel, "db", "heslo");
if(!$spojeni)
echo "Nepodařilo se vytvořit spojení s hostitelem $hostitel!";
else {
$navratova_hodnota = mysql_select_db($DB);
if (!$navratova_hodnota)
echo "Nepodařilo se nastavit pracovní databázi $DB!";
}
return $navratova_hodnota;
}
?>

gajdynator
Profil
MilanJ
Pre výpis kódu používaj ten dolár hore...
MilanJ
Profil
Pre výpis kódu používaj ten dolár hore...
Jaký dolar?
MilanJ
Profil
OK
Leo
Profil
"Jak tedy docílit toho, abych ji mohl zavolat znovu a nedošlo k opětovné deklaraci?"

Rozhodne ne tim, ze znovu includujete soubor otevritdb.php, Leo
Hugo
Profil
MilanJ

Jakmile ten soubor jednou vložíš pomocí include, tak všechny funkce, které jsou v něm deklarované budou existovat až do konce skriptu. Takže ji můžeš volat kolikrát chceš.
MilanJ
Profil
Vyřešila by to deklarace funkce přímo ve zdrojovém souboru?
MilanJ
Profil
Už jsem to pochopil...:-)
Zdenek13
Profil
Mám stejný problém, ale zatím jsem to nepochopil:-(
V souboru mám funkci, kterou chci z jednoho skriptu volat víckrát s různými parametry. Jak to mám udělat? Pořád přesně nevím, co znamená funkci deklarovat.
Hugo
Profil
Zdenek13

Funkci muzes volat kolikrat chces. Deklarace funkce je jeji definice, tzn.

function NovaFunkce()
{
...
}
Zdenek13
Profil
Díky, už jsem to taky pochopil.
Měl jsem include uvnitř volané funkce, takže při jejím dalším zavolání jsem znovu includoval soubor a tím i znovu deklaroval funkci, která v něm byla.
Hugo
Profil
Zdenek13

Proti tomuto pomu ze pouzivani funkci include_once() a reaquire_once(), ovsem ne vzdy je to mozne.
Toto téma je uzamčeno. Odpověď nelze zaslat.