Autor Zpráva
tydyt
Profil *
Mám pole array('argument1', argument2). Potřeboval bych to předhodit funkci, která očekává 2 argumenty. Jak to mám udělat. Toto nefunguje (sice ti oddělí čárkama, ale php to bere jen jako jeden argument):
implode(',',$pole)
tomas3333
Profil
asi hladas toto http://sk.php.net/manual/en/function.call-user-func-array.php

alebo klasicky funkcia($pole[0], $pole[1]);
Keeehi
Profil
takto:
$pole = array('argument1', argument2);

funkce($pole[0],$pole[1]){...}
tydyt
Profil *
Taky jsem to před minutou objevil :-). Vypadá to ale docela špatně (myslel jsem že se jedná o problém syntaxe, ne že je potřeba funkce), protože já neřeším jenom předání pole funkci, ale já potřebuju konkrétně vytvořit nový objekt a předat mu parametry z pole:
new Objekt($pole);

Dá se i na to aplikovat výše uvedená funkce? Jak?
tydyt
Profil *
Tak už jsem to našel. Musím asi použít Reflection API.
Alphard
Profil
Nemohl by ten objekt převzít celé pole?
Majkl578
Profil
Vytvořit objekt s neznámým počtem argumentů lze pomocí ReflectionClass::newInstanceArgs().
Mastodont
Profil
A co třeba
  $pole = Array(1,2);
  list($prvni, $druhy) = $pole;
  $o = new Objekt($prvni, $druhy);
Nox
Profil
Koukám a nemůžu najít, že by někde tydyt potřeboval variabilní počet proměnných... @ tydyt takže se nemusí dělat nic a prostě voláš
funkce($pole[0], $pole[1]);


Na druhou stranu aspoň se tu dá neplánovaně něco víc přiučit
tydyt
Profil *
Nox:
Potřebuju variabilní počet proměnných, jinak bych se ani neptal.
__construct
Profil
tydyt:
Nemôžeš tú funkciu jednoducho poupraviť a použiť potom func_get_args() ?
//edit: Nox: Hups to som si nevšimol .. Pardón
Nox
Profil
Tak to už myslim odpověděl tomas3333, ne?
AM_
Profil
Tu třídu Objekt jsi psal sám? poupravil bych ji tak, aby
- šlo všechny parametry předat jako jedno pole
new Objekt($vsechny_parametry);

- nebo dodat později
$o = new Objekt($param1);
$o->addParam($param2);
$o->addParam($param3);

je to možná otázka mého vkusu, ale podle mě jakmile se musí sahat do reflection (vyjma snad čtení anotací apod.), zavání to špatným návrhem...

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: