SOBRECARGA DE FUNCIONES EN PHP
En la teoría de objetos existe el concepto de sobrecarga de funciones que consiste en poder definir varias funciones con el mismo nombre pero con diferente número y/o tipo de parámetros y dependiendo de ellos se ejecutará una función u otra.Aunque en php hay que emularlo no está definido como tal. Según la documentación de php se hace de la siguiente manera:
- Todos los métodos sobrecargados deben definirse como public.
- No se puede pasar ninguno de los parámetros de estos métodos mágicos por referencia.
class sobreCarga {
function __call($metodo, $params) {
$accepted_methods = array('pruebas');
if(!in_array($metodo, $accepted_methods)) {
trigger_error('El método '.$metodo.' no existe', E_USER_ERROR);
}
$total_params = count($params);
switch ($total_params) {
case 0:
$this->Pruebas1();
break;
case 1:
$this->Pruebas2($params[0]);
break;
case 2:
$this->Pruebas3($params[0], $params[1]);
break;
}
}
function Pruebas1() {
echo 'Hola';
}
function Pruebas2($nombre){
echo 'Hola ' . $nombre;
}
function Pruebas3($nombre, $apellido){
echo 'Hola ' . $nombre.' '. $apellido;
}
}