What are the advantages and disadvantages of using call_user_func_array() compared to traditional parameter passing in PHP?

When comparing using call_user_func_array() to traditional parameter passing in PHP, the advantage is that call_user_func_array() allows you to dynamically call a function with an array of parameters, which can be useful in situations where the number of parameters is not fixed. However, using call_user_func_array() can be slower and less readable compared to traditional parameter passing.

// Traditional parameter passing
function add($num1, $num2) {
    return $num1 + $num2;
}

$result = add(2, 3);

// Using call_user_func_array()
function subtract($num1, $num2) {
    return $num1 - $num2;
}

$params = [5, 3];
$result = call_user_func_array('subtract', $params);