Обратите внимание, что они на самом деле делают разные вещи:
Распаковка аргументов - это просто распаковка аргументов для использования функцией.
call_user_func_array
вызывает функцию и предоставляет массив распаковать в качестве аргументов этой функции.
В вашем случае не будет особой разницы, поскольку ваш код делает по существу то же самое, но обычно вы используете call_user_func_array
ТОЛЬКО когда вы хотите вызвать функцию через него, вы выиграли ' используйте его только для распаковки аргументов (если вы не используете PHP ниже 5.6).
TLDR : хотя call_user_func_array
распаковывает аргументы, это не главная идея, а основная идея - вызвать функцию (и передать ей аргументы).
Также обычно вы не должны вызывать такие функции, как это, и это сигнализирует, что с кодовой базой есть что-то ужасное, если только у вас не очень конкретный случай c.