Primero que nada con respecto a la sobrecarga de funciones el manual dice lo siguiente:
Cita: PHP does not support function overloading, nor is it possible to undefine or redefine previously-declared functions.
Pero para hacer algo similar puedes emplear el uso de las funciones como en tu ejemplo o argumentos por default:
http://www.php.net/manual/en/functions.arguments.php y a partir de PHP 5.6 vamos a tener el uso de
variadic functions con lo cual vas a poder declarar una función que reciba argumentos adicionales como un arreglo:
Código PHP:
Ver originalfunction total_intervals($unit, DateInterval ...$intervals) {
$time = 0;
foreach ($intervals as $interval) {
$time += $interval->$unit;
}
return $time;
}
$a = new DateInterval('P1D');
$b = new DateInterval('P2D');
echo total_intervals('d', $a, $b).' days';
// This will fail, since null isn't a DateInterval object.
echo total_intervals('d', null);
La forma que escojas va depender de tus necesidades.