Salut !
J'aimerais vous soumettre un problème. Voici sans plus attendre l'énoncé...
Au début de certaines fonctions j'utilise le bout de code suivant pour définir des options par défaut, écrasées ensuite par les options passées en arguments.
Après, pour me simplifier la vie, je définis autant de variables locales qu'il y a d'options présentes, histoire de me simplifier l'écriture de la suite. L'ennuie avec tout ça c'est que c'est vite répétitif et je trimballe souvent ce bout de code. Parfois ça prend même presque autant de place que le reste de la fonction que j'écris...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
function cook($options = null) { 
    $options = array_merge(array( // default options 
        'fruit' => 'apple', 
       &nbsp'vegetable' => 'peas' 
    ), $options); 	 
    forEach($options as $option => $value) { 
        $$option = $value; 
    }  
    print("Let's cook some $fruit with $vegetable!"); 
}
Donc, sauriez-vous si, à l'aide des closures ou bien autre chose à quoi je n'aurais pas encore pensé, il serait possible d'automatiser ces quelques instructions ? On pourrait écrire quelque chose comme :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
function cook($options = null) { 
    settleOptions($options, array('fruit' => 'apple', 'vegetable' => 'peas'));  
    print("Let's cook some $fruit with $vegetable!"); 
}
Dommage qu'on n'ait pas de define à la C++...