Ver Mensaje Individual
  #3 (permalink)  
Antiguo 30/11/2013, 09:12
Avatar de jonni09lo
jonni09lo
Colaborador
 
Fecha de Ingreso: septiembre-2011
Ubicación: Estigia
Mensajes: 1.471
Antigüedad: 12 años, 7 meses
Puntos: 397
Respuesta: No se si me quedan muy claras las funciones.

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 original
  1. function numero_impar( $numero = 1 ){
  2.     if( $numero % 2 == 0 ){
  3.         echo "{$numero} es par";
  4.     } else {
  5.         echo "{$numero} es impar";
  6.     }
  7. }
  8.  
  9. 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 original
  1. function numero_impar( $numero = 1 ){
  2.     if( $numero % 2 == 0 ){
  3.         return false; //colocamos false ya que la función (semanticamente hablando) diría algo como: verificar si un numero es impar
  4.     } else {
  5.         return true;
  6.     }
  7. }
  8.  
  9. if(numero_impar(2)){
  10.     //operaciones si un número es impar
  11. } else {
  12.     //operaciones si un número es par
  13. }

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 original
  1. function numero_impar(){
  2.     $arg_list = func_get_args();
  3.     $arrayEspar = array();
  4.     $arrayEsimpar = array();
  5.     foreach( $arg_list as $k=>$valor ){
  6.         if( $valor % 2 == 0 ){
  7.             $arrayEspar[] = $valor;
  8.         } else {
  9.             $arrayEsimpar[] = $valor;
  10.         }
  11.     }
  12.     return array('numerosPares'=>$arrayEspar, 'numerosImpares'=>$arrayEsimpar);
  13. }
  14.  
  15. var_dump( numero_impar(2,3,5,122,827,65,10) );
  16.  
  17. /*retorna:
  18. 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) } }
  19. */

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
  1. <?php
  2. function muestra_saludo($nombre){
  3.     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
  4. }
  5. ?>
  6. <!DOCTYPE html>
  7. <html>
  8.     <head></head>
  9.     <body>
  10.         <?php muestra_saludo('rodrypaladin') ?>
  11.     </body>
  12. </html>

Espero te sirva mi explicación

Saludos
__________________
Haz preguntas inteligentes-Como ser Hacker
No hacer preguntas por mensaje privado. No sólo no es inteligente sino que es egoísta.