использование call_user_func_array () в методе _remap кодового редактора - PullRequest
1 голос
/ 18 февраля 2012

call_user_func_array() Примеры руководства по PHP * может только больше запутать меня с этими foo и bar переменными!

В любом случае, рассмотрим _remap и ComplexFunction ниже:

class MyClass extends CI_Controller
{

    public function _remap($method, $params = array())
    {

        if (method_exists($this, $method))
        {
            return call_user_func_array(array($this, $method), $params);
        }

    }

    public function ComplexFunction($param1, $param2, $param3, $param4)
    {
        // process
        return 'done';
    }

}

Теперь этот фрагмент кода будет работать правильно?

$params = array(
                'param1' => '1',
                'param2' => '2',
                'param3' => '3',
                'param4' => '4'
               );

$myObject = new MyClass();

$output = call_user_func_array(array($myObject, 'ComplexFunction'), $params);

echo $output;
  1. Будет ли $output done?
  2. Это надежный метод для использования в функции _remap() codeigniter?

1 Ответ

2 голосов
/ 18 февраля 2012

Это не сработает, так как функция _remap() вызывается основными функциями CI, и ей передается отдельный аргумент для каждого сегмента в соответствующем маршруте. Вам никогда не придется вызывать метод _remap() самостоятельно!

...