Autor Zpráva
reprec
Profil *
Ahoj. Potřeboval bych volat uživatelskou funkci a předat jí parametry jako reference. call_user_func to oficiálně neumožňuje, ale funguje to jako call_user_func('mojefunkce' &$promenna), ale je to deprecated a funkce
call_user_func_array('mojefunkce', array(&$promenna));

funguje a php nevypisuje deprecated, ale na stránkách php je varování, že tato funkcionalita bude deprecated a bude vymazána v příštích verzích php. Otázka tedy zní jak předat uživatelské funkci referencovanou proměnnou?
ShiraNai7
Profil
To neni deprecated ani nebude... deprecated je jen prime predavani reference jako parametru funkce..

funkce(array(&$promenna)); //neni deprecated
funkce(&$promenna); // je deprecated


A je to z pochopitelných důvodů. Když má funkce dostat referenci, tak to má mít uvedeno v seznamu parametrů:
function nejaka($prvni, $druhy, &$reference) {}


edit: teď mi došlo - jestli je to deprecated v call_user_func_array nevím :)
reprec
Profil *
To si nerozumíme. Já píšu čistě o funkcích call_user_func a call_user_func_array. Aby tyto funkce mohly předávat proměnné referencemi, musí být volány s referencemi - zde nefunguje standardní definice funkce "function funkce(&$prom)". Viz. první note na http://www.php.net/manual/en/function.call-user-func-array.php
Mastodont
Profil
No jestli chceš předávat pole s referencemi, tak se koukni na funkci refValues v komentářích k
http://php.net/manual/en/mysqli-stmt.bind-param.php
reprec
Profil *
No nevím, připadá mi to že se jedná prakticky o stejný případ jako předávání přímé reference. Ale našel jsem tohle: http://cz.php.net/manual/en/reflectionfunction.invokeargs.php což vypadá docela rozumně.

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: