2012-12-10 14 views
13

consideri il seguente esempio:Come posso passare il riferimento a call_user_func?

function myTest(&$var) 
{ 
    $var++; 
    echo "var = {$var}\n"; 
} 

$x = 42; 
call_user_func('myTest', $x); 

Esso mostra l'avvertimento:

Warning: Parameter 1 a myTest() dovrebbe essere un punto di riferimento, il valore data in/home/alain/lavoro/echo/echo.php (57): eval() 'd code on linea 7

Nota: il codice scritto su un sandbox on-line, explaning eval.

Qualche idea su come posso passare il riferimento alle funzioni familiari call_user_func?

risposta

28

ho trovato la mia risposta sul PHP manual:

Nota:

Nota che i parametri per call_user_func() non sono passati per riferimento.

Danno anche un trucco per fare il lavoro:

$x = 42; 
call_user_func_array('myTest', array(&$x)); 
+5

avete risposto questo abbastanza rapidamente :-) –

+0

** NO! questo è deprecato (il passaggio per riferimento è deprecato dopo php 5.3)! ** –

Problemi correlati