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