Autor Zpráva
Ciki
Profil *
Ahoj, mam menší problém, mam deklarovaný pole $userdata a to obsahuje všechny data z databáze určitého uživatele. Pole lze použít všude v souboru kromě funkcí.

echo $userdata['user_nick'];
function showNick {
 Zde zatím nic
}

toto funguje vypíše to jméno na obrazovku
ovšem

function showNick {
 echo $userdata['user_nick'];
}

toto už nefunguje, jakmile je prostě to pole použito v nějaké funkci jako by nebylo, už si nevím rady, děkuji za každou pomoc
Alphard
Profil
Předat parametrem, přečtěte si o funkcích něco víc, např. na Základní kurz 13: Funkce.
Dan Charousek
Profil
Ciki:
Říká se tomu kontext nebo také obor viditelnosti proměnné. Jednoduše ta data předej do funkce pomocí parametr při jejím volání, např.:

function showNick($data) {
    echo $data['user_nick'];
}

$userdata = ['user_nick' => 'Ciki'];

showNick($userData); // vypíše Ciki
Ciki
Profil *
Já v tý funkci chci psát dlouhé scripty...nemužu tomu předávat všechny proměnné... to není něco jako procedůra jako třeba v C# ?
Dan Charousek
Profil
Ciki:
Já v tý funkci chci psát dlouhé scripty
Tak to asi něco děláš špatně. Každá funkce by měla řešit jeden konkrétní problém.
Alphard
Profil
Ciki [#4]:
Procedura v C#? Přiznám se, že moc nerozumím a vše co jsem v rychlosti na toto téma našel vedlo na procedury na úrovni SQL.
Mohu jen hádat, že máte na mysli nějakou formu globálních proměnných. Ty podporuje i PHP, jen je třeba globálnost v dané funkci explicitně deklarovat, respektivě k proměnnýchm přistupovat přes pole globálních objektů.

Důvod, proč jsem to nenapsal hned, je, že toto řešení obvykle není ideální; byť se tak začátečníkům může zdát.
Ve většině případů je možné předávaná data strukturovat tak, aby je bylo možné efektivně předávat v parametrech.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: