Ver Mensaje Individual
  #4 (permalink)  
Antiguo 14/01/2005, 15:27
Avatar de jpinedo
jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 20 años, 8 meses
Puntos: 41
Pues no... PHP no permite directamente definir más de una función con el mismo nombre como en Java. En PHP una función está definida por su nombre, mientras que en Java se define por su nombre, número de argumentos y tipo de argumentos lo cual permite una sobrecarga más fácil.

Pero existen formas de hacer esta sobrecarga definiendo una única función que haga una u otra cosa según la cantidad de parámetros que se le pasen.
Para eso utilizas
func_num_args() que te devuelve el número de argumentos pasados a la función. http://www.php.net/func-num-args
func_get_arg($posicion) que te devuelve el valor del argumento que está pasado en la posicion $posicion. http://www.php.net/func-get-args
En PHP 4 sería:
Código PHP:
function miFuncion(){
    switch(
func_num_args()){
        case 
0:
            echo 
"Ejecución de miFuncion() sin parámetros";break;
        case 
1:
            echo 
"Ejecución de miFunction() con UN parámetro<br />\n";
            echo 
"El parámetro es:"func_get_arg(0);break;
        case 
2:
            echo 
"Ejecución de miFunction() con DOS parámetro<br />\n";
            echo 
"El parámetro 1 es:"func_get_arg(0);
            echo 
"El parámetro 2 es:"func_get_arg(1);break;
        default:
            echo 
"Error!.. número incorrecto de parámetros";
    }

Sobre este tema (muy similar) Webstudio hizo una gran expliación hace poco:
http://www.forosdelweb.com/showpost....6&postcount=23

Saludos

Última edición por jpinedo; 14/01/2005 a las 15:41