PHP est un langage de programmation bien, si nous jugeons avec les paramètres assez empiriques de la diffusion et le montant de la fonction qui intègre. S'avère souvent les scénarios de programmation étonnamment souple pour répondre aux beaucoup plus complexe que de simplement intégrer des scripts dans une page web.

Au cours d'un récent échange de vues avec un mathématicien aime de l'Open Source a présenté le problème de la création de fonctions anonymes, et - c'est ici que le bât blesse - pas à l'intérieur d'une classe PHP. Sauter le baratin théorique que j'ai eu à siroter lambda-calcul et fonctions anonymes, et je ne présentons ici un passage de la définition donnée par WikiPedia . Je cite:

Le lambda calcul est un système de réécriture défini formellement par le mathématicien Alonzo Church . Il a été développé pour analyser formellement les définitions de fonctions , de leurs applications et est également un outil intéressant pour étudier les phénomènes de récurrence . Comme le système de réécriture, il donne une description des termes bien formés, qui sont des séquences de symboles reconnus par le système et pouvant être réécrite à partir de lui. Le lambda calcul, en fait, définit un ensemble de règles de réécriture qui déterminent précisément comment ces termes peuvent être réécrites. De cette façon, le processus de réécriture devient un véritable calcul .

Et pourtant (disponible en anglais seulement):

Les fonctions anonymes peuvent être utilisés pour contenir des fonctionnalités qui n'ont pas à être nommé et, éventuellement, pour usage à court terme. Quelques exemples notables incluent les fermetures et le corroyage. [...]
Les fermetures sont évalués fonctions dans un environnement contenant des variables liées. L'exemple suivant lie la variable «seuil» dans une fonction anonyme qui compare la contribution à ce seuil. [...]
Corroyage est une fonction de transformation à partir de plusieurs entrées à moins d'intrants (dans ce cas de division entière).

Bien que n'étant pas d'existence officielle en PHP une vraie méthode pour gérer les fonctions anonymes, vous pouvez facilement obtenir quelque chose de similaire dans au moins deux façons:

  1. l'appel d'une variable avec le nom d'une fonction:
    $foo = "phpinfo";
    $foo();
  2. l'initialisation d'une variable avec le create_function ``:
    $sum = create_function('$a, $b','return $a + $b;');
    echo $sum(1,2);

Dans le premier cas nous ne faisons que créer un lien vers la fonction. Dans le second cas, nous attribuons la fonction de la variable comme on peut le créer. Seeing is believing: il s'agit d'une inhabituelle et un peu amusant de PHP, mais fortement décourager quiconque d'adopter une solution similaire dans des environnements de production où vous ne voulez pas perdre de vue pratique et la facilité de lecture du code.