У меня есть функция в PHP, которая должна принимать аргумент и возвращать его.
function identity($argument) { return $argument; }
Это работает, как ожидалось:
identity(4) === 4
Я бы хотел передать это другим функциям. Например, вот так:
array_map(identity, [1, 2, 3])
.
Есть ли способ сделать это БЕЗ использования анонимной функции? Насколько я могу судить, это единственный способ заставить его работать:
array_map(fn ($arg) => identity($arg), [1, 2, 3])
но это более многословно, чем мне бы хотелось.
Если бы я do array_map(identity, [1, 2, 3])
Я получаю:
PHP Warning: Use of undefined constant identity - assumed 'identity' (this will throw an Error in a future version of PHP)
Я прибегал к определению идентичности, например:
function identity() { return fn ($arg) => $arg; }
и называю это так:
array_map(identity(), [1, 2, 3])
но это тоже явно не идеально.