Я пытаюсь использовать __callStatic
, чтобы обернуть вызовы к разным статическим функциям в моем классе.
Эта текущая версия кода позволяет мне делать это с функциями, которые имеют параметр 0 или 1:
class test {
public static function __callStatic($name, $args) {
if (method_exists(__CLASS__, $name)) {
echo "it does exist\n";
return forward_static_call([__CLASS__, $name], $args[0]);
} else {
echo "it does not exist\n";
}
}
private static function mfunc($param1, $param2) {
echo "that's my func \n";
echo "$param1\n";
echo "$param2\n";
}
}
test::notafunc("one", 'two');
test::mfunc("one", "two");
Однако это не удастся для mfunc
, поскольку он имеет два параметра. Как я могу распространить различные аргументы, когда я вызываю функцию?
Я не могу использовать новый оператор распространения , потому что я заблокирован на PHP 7.2. Я также не могу изменить mfunc
, потому что у меня слишком много методов для изменения в проекте.