Maison > base de données > tutoriel mysql > le corps du texte

Analyse des instances de fermeture PHP

怪我咯
Libérer: 2017-07-11 15:52:35
original
1178 Les gens l'ont consulté

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变量
}
Copier après la connexion

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)
?>
Copier après la connexion


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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal