Tema: Para el foro
Ver Mensaje Individual
  #18 (permalink)  
Antiguo 26/12/2004, 21:26
Avatar de jpinedo
jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 21 años, 3 meses
Puntos: 41
Puedes revisar la documentación en el manual:
http://www.php.net/func-get-arg

Pero para este caso específico que explico, se trata de asignar valor a un atributo... o sea que no tendría mucho sentido pasar tres parámetros al método... porque sólo puede tomar un valor a la vez. Este es el caso de un método simple de acceso a un atributo.

En Java se permite que varios métodos compartan el mismo nombre pero con diferentes tipos o número de parámetros. En PHP no puedes definir dos métodos/funciones con el mismo nombre. Para eso viene muy bien funciones como func_num_args() y func_get_arg().

Ahora, podría existir un caso en el que para asignar valor a un taributo tengas que pasar más de un parámetro. Pero en caso de métdos de acceso será menos frecuente.
Código PHP:
class Ejemplo{
    var 
atributo1;
    function 
Atributo1(){
        switch (
func_num_args()){// según la cantidad de parámetros que se hayan pasado
            
case 3:
                
// supongamos que se requieren tres parámetros numéricos para dar valor al 
                // atributo1 y que el valor que tomará será la suma de los tres parámetros.
                
$this->atributo1 func_get_arg(0) + func_get_arg(1) + func_get_arg(2);
                break;
            default:
                
// si se pasa otra cantidad de parámetros, se devuelve el valor.
                // normalmente no se pasará ninguno.
                
return $this->atributo;
        }
    }
}

// Para utilizar la clase:
$ejemplito = new Ejemplo();
// Le damnos un valor al atributo1
$ejemplito->Atributo1(17,13,10); // atributo1 quedará con valor = 40; (la suma)
// Imprimimos el valor del atributo:
echo $ejemplito->Atributo1();// imprimirá: 40 
Como puedes ver... para acceder a los parámetros de la función se utiliza func_num_args() con un índice numérico análogo al de un array.

Saludos