Параметры функции должны быть декларативными, то есть они не должны что-то делать.
Но вы можете сделать это с помощью callable
ключевого слова (PHP 5.4):
function argfunction($a,$b,$c){
return $a+$b+$c;
}
function anotherfunction(callable $a_func, $a, $b, $c, $d, $e) {
// call the function we are given:
$abc = $a_func($a, $b, $c);
return $abc + $d * $e;
}
// call:
anotherfunction ("argfunction", 1, 2, 3, 4, 5); // output: 26
Или вы можете передать все определение функции:
echo anotherfunction (function ($a, $b, $c) {
return $a+$b+$c;
}, 1, 2, 3, 4, 5); // output: 26
Или присвоить функцию переменной, и передать это:
$myfunc = function ($a, $b, $c) {
return $a+$b+$c;
};
echo anotherfunction ($myfunc, 1, 2, 3, 4, 5); // output: 26
Но если вы просто хотите передать результат вызова функции к другой функции, то это намного проще:
function anotherfunction2($abc, $d, $e) {
return $abc + $d * $e;
}
echo anotherfunction2 (argfunction(1, 2, 3), 4, 5); // output: 26
Такой синтаксис не существует ..... он просто не разрешен языком ..... что он даже должен делать? –
Используйте вывод ранее определенной функции как входной сигнал другой функции - она не разрешена? – shoestringfries
@shoestringfries Когда вы вызываете функцию yes, но не как определение функции. Например: 'anotherfunction (argfunction ($ a, $ b, $ c), $ d, $ e)' и в вашем определении: 'function anotherfunction ($ fresult, $ d, $ e)' – Rizier123