У меня есть функция в моем классе, которая принимает функцию обратного вызова в качестве аргумента.Как передать все аргументы моей функции обратного вызова?
Но я тогда хотел передать п дополнительные аргументы для обратного вызова:
$myClass->each(function($result,$arg1,$arg2,$arg3){
echo $arg2; //expected: bar
},'foo','bar',85);
То, что я пытаюсь достичь:
class myClass {
public function each() {
$callback = func_get_arg(0);
$args = array_slice(func_get_args(), 1); //_____
// |
if (is_callable($callback)) { // | I have $args
foreach ($this->results as $result) {// | But how can I pass
$callback($result,...$args); // | them to $callback
} //^ | as a set of args?
} // |__________________|
}
}
пожалуйста, обратите внимание, что я используя php 5.4, поэтому я не могу использовать оператора ...
просто измените свой обратный вызов, чтобы принять массив, затем вы можете напрямую передать результат func_get_args(). –