Autor | Zpráva | ||
---|---|---|---|
tydyt Profil * |
#1 · Zasláno: 21. 7. 2010, 00:52:20
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 |
#2 · Zasláno: 21. 7. 2010, 00:55:22 · Upravil/a: tomas3333
asi hladas toto http://sk.php.net/manual/en/function.call-user-func-array.php
alebo klasicky funkcia($pole[0], $pole[1]); |
||
Keeehi Profil |
#3 · Zasláno: 21. 7. 2010, 00:56:12
takto:
$pole = array('argument1', argument2); funkce($pole[0],$pole[1]){...} |
||
tydyt Profil * |
#4 · Zasláno: 21. 7. 2010, 00:58:44
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 * |
#5 · Zasláno: 21. 7. 2010, 01:01:36
Tak už jsem to našel. Musím asi použít Reflection API.
|
||
Alphard Profil |
#6 · Zasláno: 21. 7. 2010, 01:04:38
Nemohl by ten objekt převzít celé pole?
|
||
Majkl578 Profil |
#7 · Zasláno: 21. 7. 2010, 01:10:54
Vytvořit objekt s neznámým počtem argumentů lze pomocí ReflectionClass::newInstanceArgs().
|
||
Mastodont Profil |
#8 · Zasláno: 21. 7. 2010, 06:17:17
A co třeba
$pole = Array(1,2); list($prvni, $druhy) = $pole; $o = new Objekt($prvni, $druhy); |
||
Nox Profil |
#9 · Zasláno: 21. 7. 2010, 08:40:44
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 * |
#10 · Zasláno: 21. 7. 2010, 11:59:17
Nox:
Potřebuju variabilní počet proměnných, jinak bych se ani neptal. |
||
__construct Profil |
#11 · Zasláno: 21. 7. 2010, 12:00:44 · Upravil/a: __construct
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 |
#12 · Zasláno: 21. 7. 2010, 12:11:57
Tak to už myslim odpověděl tomas3333, ne?
|
||
AM_ Profil |
#13 · Zasláno: 21. 7. 2010, 14:14:16
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... |
||
Časová prodleva: 14 let
|
0