Перегрузка замыкания: можно ли проверить количество аргументов замыкания PHP, не выполняя его?

Что я хочу сделать

Я хочу проверить замыкание (переданное как переменная), чтобы определить, сколько аргументов оно ожидает.По сути, я хочу перегрузить замыкание в традиционном смысле, только обработав его по-другому.

function someMethod(Closure $callback) {
    $varA;
    $varB;
    $varC;
    if($callback->getNumArgs() == 3) {
        $callback($varA, $varB, $varC);
    }
    else {
        $callback($varC, $varA);
    }
}

Если это можно объяснить лучше, дайте мне знать, чтобы его можно было отредактировать.

Исходная информация

В зависимости от того, сколько аргументов принимает замыкание, я изменю способ его вызова. Мне нужно сделать это, чтобы сэкономить дорогостоящие итерации в цикле.

Обратите внимание

  • Я использую PHP5.3
  • Напоминаю, что я не хочу выполнять функцию и поэтому не могу использовать func_num_args
5
задан hakre 11 June 2012 в 13:09
поделиться