Ver Mensaje Individual
  #2 (permalink)  
Antiguo 10/10/2013, 21:21
Avatar de pateketrueke
pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Parametros por defecto de los parametros por defecto

El problema con tu ejemplo es que justo en el momento en que pasas argumentos, aunque estos no contengan nada, están tomando el lugar de los parámetros opcionales volviéndolos obsoletos.

Ahora, un buen truco de programación funcional sería usar call_user_func_array(), que toma el nombre de una función (o un closure) y el arreglo toma parte de argumentos.

Si algún argumento quieres omitir entonces lo quitas del array.

Código PHP:
Ver original
  1. function funcionA($parA = 'Hola' , $parB = 'Pepe') {
  2.     echo('1 Parametro: '.$parA.' | Otro parametro:'.$parB);
  3. }
  4.      
  5. function funcionB($parA , $parB = NULL , $parC = NULL) {
  6.     echo('Parametro obligatorio: '.$parA);
  7.        
  8.     $args = func_get_args();
  9.     $args = array_filter(array_slice($args, 1));
  10.        
  11.     call_user_func_array('funcionA', $args);
  12. }
  13.      
  14. funcionB('Epaaa');

En este caso utilizo array_slice() para deshacerme del primer argumento original, y luego array_filter() para descartar los elementos vacíos.

Claro que podrías implementar algo mejor, al menos es una idea.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.