Fonctions anonymes (Fonctions anonymes), également appelées fermetures, permettent de créer temporairement une fonction sans nom spécifié. Le plus souvent utilisé comme valeur du paramètre (callback) de la fonction callback. Bien entendu, il existe également d’autres applications.
Les fonctions anonymes sont actuellement implémentées via la classe Closure.
Les fonctions de fermeture peuvent également être utilisées comme valeur de variables. PHP convertira automatiquement cette expression en une instance objet de la classe intégrée Closure. La méthode d'affectation d'un objet de fermeture à une variable est la même que la syntaxe d'affectation de variable ordinaire, et un point-virgule est également ajouté à la fin :
Une fermeture peut être récupéré de la portée parent hérite de variables. Toutes ces variables doivent être transmises à l’aide de la construction du langage use. À partir de PHP 7.1, de telles variables ne peuvent pas être transmises : superglobales, $this ou avoir le même nom que les paramètres.
Le formulaire spécifique est le suivant :
$a = function($arg1, $arg2) use ($variable) { // 声明函数闭包到变量$a, 参数为$arg1, $arg2 ,该闭包需使用$variable变量 }
Les exemples d'utilisation spécifiques sont les suivants :
<?php $result = 0; $one = function() { var_dump($result); }; $two = function() use ($result) { var_dump($result); }; // 可以认为 $two这个变量 本身记录了该函数的声明以及use使用的变量的值 $three = function() use (&$result) { var_dump($result); }; $result++; $one(); // outputs NULL: $result is not in scope $two(); // outputs int(0): $result was copied $three(); // outputs int(1) ?>
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!