Vamos por partes. Una función es un conjunto de instrucciones que permiten procesar las variables para obtener un resultado determinado. Ahora bien como queremos que se comporte cada función depende de nosotros.
Si tengo una función que me dice si un numero es impar o no depende de mi como programador decir que valores aceptará y como mostrará la información. Me explico
Código PHP:
Ver originalfunction numero_impar( $numero = 1 ){
if( $numero % 2 == 0 ){
echo "{$numero} es par";
} else {
echo "{$numero} es impar";
}
}
numero_impar(2); //muestra 2 es par
Pero que pasa si quiero tomar una decisión basada en si un número es impar o no? La anterior función no nos servirá ya que imprime algo en pantalla. Así que tocaría modificarla de esta manera:
Código PHP:
Ver originalfunction numero_impar( $numero = 1 ){
if( $numero % 2 == 0 ){
return false; //colocamos false ya que la función (semanticamente hablando) diría algo como: verificar si un numero es impar
} else {
return true;
}
}
if(numero_impar(2)){
//operaciones si un número es impar
} else {
//operaciones si un número es par
}
Algo tan sutil como eso cambia el comportamiento y el funcionamiento de la misma función. Como exprese al principio, lo mas importante es ver que queremos lograr con una función y acorde a ello podemos saber como va a funcionar.
Siguiendo el mismo ejemplo, es posible no declarar parámetros en una función y podemos hacer lo siguiente:
Código PHP:
Ver originalfunction numero_impar(){
foreach( $arg_list as $k=>$valor ){
if( $valor % 2 == 0 ){
$arrayEspar[] = $valor;
} else {
$arrayEsimpar[] = $valor;
}
}
return array('numerosPares'=>$arrayEspar, 'numerosImpares'=>$arrayEsimpar); }
var_dump( numero_impar
(2,3,5,122,827,65,10) );
/*retorna:
array(2) { ["numerosPares"]=> array(3) { [0]=> int(2) [1]=> int(122) [2]=> int(10) } ["numerosImpares"]=> array(4) { [0]=> int(3) [1]=> int(5) [2]=> int(827) [3]=> int(65) } }
*/
Aunque claro el ejemplo es un poco burdo, pero creo que sirve para explicar la funcionalidad de func_get_args.
Por ultimo una función no esta atada a "solo código php". Por ejemplo WordPress, en el index de su plantilla usa funciones que invocan el header, el contenido y el footer de la plantilla. Y dependiendo de los casos esto puede ser útil
Código PHP:
Ver original<?php
function muestra_saludo($nombre){
echo "Hola <p>{$nombre}</p>"; //Puesdes colocar el codigo html que creas mas conveniente. Pero como digo solo en ocasiones, ya que a veces es mejor usar include
}
?>
<!DOCTYPE html>
<html>
<head></head>
<body>
<?php muestra_saludo('rodrypaladin') ?>
</body>
</html>
Espero te sirva mi explicación
Saludos