2012-12-10 11 views
13

Rozważmy następujący przykład:Jak przekazać odwołanie do call_user_func?

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

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

to pokazuje ostrzeżenie:

Uwaga: parametr 1 myTest(), do których odniesienie wartość podane w/home/alain/roboczego/echo/echo.php (57): eval() 'd code on linii 7

Uwaga: kod napisany na piaskownicy online explaning eval.

Masz pomysł, jak przekazać referencje do funkcji rodziny call_user_func?

Odpowiedz

28

znalazłem moją odpowiedź na PHP manual:

Uwaga:

Zauważ, że parametry call_user_func() nie zapadają odniesienia.

Dają również trick, aby wykonać zadanie:

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

Odpowiedziałeś to dość szybko :-) –

+0

** NO! jest to przestarzałe (przekazywanie przez odniesienie jest przestarzałe po php 5.3)! ** –

Powiązane problemy