Не используйте eval
, если нет лучшего решения.В вашем случае оказывается, что является лучшим решением - call_user_func
и call_user_func_array
.Разница между этими двумя функциями заключается в том, передаете ли вы параметры напрямую или в виде массива.
Например, если вы хотите вызвать $this->kick('right_leg', 'twice')
, вы можете написать его как:
call_user_func(array($this, 'kick'), 'right_leg', 'twice');
или:
call_user_func_array(array($this, 'kick'), array('right_leg', 'twice'));
Вы можете легко сделать это динамическим:
call_user_func_array(array($this, $methodName), $parametersArray);