Autor | Zpráva | ||
---|---|---|---|
host Profil * |
#1 · Zasláno: 15. 1. 2009, 09:13:58
Zdravím,
chci se zeptat jestli je možné mít funkci s libovolným počtem parametrů a poté je nějak všechny získat? Nevím jestli je to srozumitelné, tak dám teoretický příklad: function funkce() { $tmp = ''; // zde získat všechny vstupující parametry a dát je za sebe třeba nějak takto: foreach($vstupni_parametry as $value) $tmp .= $value.','; } echo funkce('první', 'druhý', 'třetí', ... , 'desátý'); // vypíše "první,druhý,třetí,čtvrtý,...desátý," echo funkce('první', 'druhý'); // vypíše pouze "první, druhý," Je tohle možné? |
||
Joker Profil |
#2 · Zasláno: 15. 1. 2009, 09:15:18
A co jí ty parametry předávat jako pole?
|
||
host Profil * |
#3 · Zasláno: 15. 1. 2009, 09:20:04
To už mě taky napadlo, ale tohle mi přijde "jednodušší" pro používání. Takhle by člověk přišel a jenom tam dal
echo funkce(1,2,3,4,5,6); a nemusel by pamatovat na to že musí psát $array = Array(1,2,3,4,5,6); echo $funkce($array); Pokud by to nešlo tak, jak jsem si to namyslel tak bych to tak určitě udělal. |
||
Joker Profil |
#4 · Zasláno: 15. 1. 2009, 09:22:42
Já myslím, že nějak jde i ten proměnný počet parametrů, jenom teď nevím jak, protože jsem to nikdy v životě nepoužil.
|
||
Joker Profil |
#5 · Zasláno: 15. 1. 2009, 09:27:57
Ha, tak Google -> myslím, že by to šlo s pomocí func_num_args a func_get_arg nebo func_get_args
Asi takhle: function foo(){ $pocet = func_num_args(); for($i=0; $i<$pocet; $i++){ echo("$i. argument:".func_get_arg($i)); } } |
||
host Profil * |
#6 · Zasláno: 15. 1. 2009, 09:33:33
To je přesně ono! Mockrát díky :)
Já jsem to taky zkoušel Gůglit, jenže jsem nevěděl jak to správně pojmenovat a nic rozumného jsem nenašel. |
||
kajaman Profil |
#7 · Zasláno: 15. 1. 2009, 09:38:43
parametry můžeš od konce vynechávat:
function foo($par1 = 'a', $par2 = 'b') { echo $par1 . $par2; } foo(); // ab foo('c'); //cb foo('c','d'); //cd |
||
Kajman_ Profil * |
#8 · Zasláno: 15. 1. 2009, 09:57:47
kajaman
Ale to už není funkce s libovolným počtem, ale s počtem menším nebo rovnou nějakému čislu (v příkladu 2). |
||
Časová prodleva: 15 let
|
0