tenes un array y queres llamar a una funcion con esos argumentos?
'<,'>s/funcion/metodo/g? ;)
entonces este post es para vos!
salio marquerinero el arranque...
bueno ante esas necesidades hice este ejemplito, es un poco tricky pero se puede hacer..
aca va
<?php
function suma($num1, $num2)
{
return $num1 + $num2;
}
function resta($num1, $num2)
{
return $num1 - $num2;
}
function operacion()
{
$args = func_get_args();
$op = array_shift($args);
print($op . '=');
if($op == "suma")
{
print(call_user_func_array('suma', $args));
}
elseif($op == "resta")
{
print(call_user_func_array('resta', $args));
}
else
{
print('?');
}
}
class Foo
{
public function __construct()
{
}
public function suma($num1, $num2)
{
return $num1 + $num2;
}
public static function resta($num1, $num2)
{
return $num1 - $num2;
}
}
$foo = new Foo();
operacion("suma", 2, 2);
operacion("resta", 2, 2);
operacion("asd", 2, 2);
// como llamar a un metodo de un objeto
print('$foo->suma=' . call_user_func_array(array($foo, 'suma'), array(2, 2)));
// como llamar al metodo de una clase
print('Foo::resta=' . call_user_func_array(array('Foo', 'resta'), array(2, 2)));
?>
No hay comentarios.:
Publicar un comentario