Autor | Zpráva | ||
---|---|---|---|
TomAsQo Profil |
#1 · Zasláno: 25. 5. 2007, 21:48:00
ahoj, neviete, ako sa da(ak sa vobec da) spravit v PHP-cku funkcia s nepovinnymi parametrami bez hadzania chyby?
|
||
Str4wberry Profil |
#2 · Zasláno: 25. 5. 2007, 21:54:12 · Upravil/a: Str4wberry
Pokud se nepletu tak by mělo fungovat toto.
function funkce($nepovinnyparametr = "", $povinnyparametr) { } ale ruku do ohně bych za to nedal :) |
||
koudi Profil |
#3 · Zasláno: 25. 5. 2007, 22:12:53
jestli se nepletu, tak nepovinne musi byt az na konci.
|
||
Mastodont Profil |
#4 · Zasláno: 25. 5. 2007, 22:15:26 · Upravil/a: Mastodont
Ano, buď můžeš k libovolnému parametru doplnit default hodnotu, nebo si uděláš "přetíženou" funkci, a tam můžeš mít parametrů kolik chceš.
|
||
Pavel Prochazka.zde.cz Profil * |
#5 · Zasláno: 26. 5. 2007, 07:50:11
Mastodont zdravicko, jak se v php delaji pretezovane funkce?
|
||
Pavel Prochazka.zde.cz Profil * |
#6 · Zasláno: 26. 5. 2007, 07:51:35
koudi ano mas pravdu nepovinne parametry MUSI bejt na konci, pokud je das jinam uz to nejsou nepovinne parametry v pravem slova smyslu ale parametry ktere pri neudani jeji hodnoty se pouzije nejaka defaultni hodnota...
|
||
Mastodont Profil |
#7 · Zasláno: 26. 5. 2007, 08:22:49
Pavel Prochazka.zde.cz
No, není to klasické přetížení ve stylu C# nebo C++, kde máš v kódu víc definic funkcí - ale v podstatě o přetížení jde. A dělá se to úplně jednoduše:
Tu funkci pak můžeš volat s libovolnou sadou parametrů, které si uvnitř zkontroluješ a větvíš kód. Pro nepovinné parametry ideální. |
||
Pavel Prochazka.zde.cz Profil * |
#8 · Zasláno: 26. 5. 2007, 08:28:36
Mastodont super....
nebude to delat ale problemy? ja mam takove tuseni ze kdyz nesedi pocet parametru, tak parser neni nadsenej a porad si neco vymrcuje :). Neni jeste neco napsat nejake klicove slovo do seznamu parametu? |
||
Pavel Prochazka.zde.cz Profil * |
#9 · Zasláno: 26. 5. 2007, 08:36:05
Zdraim, kupodivu to nerve :). Akorat to nefaka. Zde je kod:
function pretezovani() { switch (func_num_args()) { case 0: $z = $z + 1; case 1: $z = $z + 2; } } a volam to takto: pretezovani (40,5); pretezovani(10); a nejak se to nechce vykonat (nechce se pricist ta promenna $Z) proste to na to ani neskoci... A dalsi vecicka jak nacitat parametry ktere jsem zadal.... |
||
Pavel Prochazka.zde.cz Profil * |
#10 · Zasláno: 26. 5. 2007, 08:47:37
tak jsem malonko studoval a vytvoril toto:
function pretezovani() { echo "<br />--------------------------------------------------<br /> "; $numargs = func_num_args(); echo "Pocet parametrů: " . $numargs . "<br /><br /> "; $arg_list = func_get_args(); for ($i = 0; $i < $numargs; $i++) { echo "Parametr $i je: " . $arg_list[$i] . "<br /> "; } } to pekne faka :):). |
||
Mastodont Profil |
#11 · Zasláno: 26. 5. 2007, 08:58:25 · Upravil/a: Mastodont
No ta první funkce skutečně fachat nemohla, protože ve volání
pretezovani (40,5); jsou parametry dva a ty v kódu počítáš s nula nebo jedním parametrem :-) Pro načítání parametrů slouží func_get_arg() a func_get_args() , viz manuál |
||
TomAsQo Profil |
#12 · Zasláno: 27. 5. 2007, 10:16:36
paraada :) diky ludia :) mozem povedat, ze tato tema je vyriesena ;) ked chcete, tak este nieco pozamenajte, neskor sa tato tema uzavrie ;)
|
||
Časová prodleva: 17 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0