// funzioni
$j = call_user_func($y, 1, 2, 3); (oppure $y(1, 2, 3))
// classi, metodi statici
$result = call_user_func(array($nomeClass, $nomemetodo), 1, 2, 3);
// metodi non statici
$result = call_user_func(array(new $$nomeClass, $nomemetodo), 1, 2, 3);
per le classi va bene anche
$c = new $$nomeClasse;
poi quando avrai finito di creare l'ennesima lib Ajax / PHP, pilotato da Ajax, ce la posti ?
[edit]
P.S. un appunto: se è tutto runtime, la differenza con eval è praticamente inesistente, sia per velocità che per "pericolosità" ... e sinceramente, a livello di scrittura, non so quale sia migliore tra
if(class_exists($nomeClasse))
eval('$result='.$nomeClasse.'::'.$nomeMetodo.'($a, $b,$c);');
e
if(class_exists($nomeClasse))
$result=call_user_func(array($nomeClasse, $nomemetodo),$a,$b,$c);
certo è che da un punto di vista puramente estetico, il secondo metodo è indubbiamente più elegante



Rispondi quotando