1. PHP / Говнокод #9197

    +154

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    public function invokeMethod($method, $params = array()) {
                    switch (count($params)) {
                            case 0:
                                    return $this->{$method}();
                            case 1:
                                    return $this->{$method}($params[0]);
                            case 2:
                                    return $this->{$method}($params[0], $params[1]);
                            case 3:
                                    return $this->{$method}($params[0], $params[1], $params[2]);
                            case 4:
                                    return $this->{$method}($params[0], $params[1], $params[2], $params[3]);
                            case 5:
                                    return $this->{$method}($params[0], $params[1], $params[2], $params[3], $params[4]);
                            default:
                                    return call_user_func_array(array(&$this, $method), $params);
                    }
            }

    Из сорцов Lithium

    Запостил: asfalanaft, 23 Января 2012

    Комментарии (4) RSS

    • Боян
      Ответить
    • Сорок нужно, не меньше.
      Ответить
    • Где-то читал что call_user_func_array тормозной, и может быть такая оптимизация что-то и даёт?
      Ответить
      • Да нет, он в общем-то нормальный. Тормозной магический __call, в котором обычно такой call_user_func_array пользуют. Хотя тоже не всегда. Когда сам экспериментировал с производительностью подобных кусков - выявил зависимость от погоды, фазы луны, и времени до конца света. :)
        Ответить

    Добавить комментарий