À propos de l'utilisation de la classe Closure en PHP

不言
Libérer: 2023-04-01 15:06:02
original
1358 Les gens l'ont consulté

Cet article présente principalement comment utiliser la classe Closure en PHP. Elle a une certaine valeur de référence. Maintenant, je la partage avec vous. Les amis dans le besoin peuvent s'y référer

La classe Closure est également appelée par. tout le monde. Des fonctions anonymes ont été introduites dans php5.3. Comme son nom l'indique, une fonction anonyme est une fonction sans nom défini. Cet article vous présentera l'utilisation et l'explication détaillée de la classe Closure en PHP. Les amis qui en ont besoin peuvent se référer à

Closure, les fonctions anonymes, également appelées fonctions anonymes, ont été introduites dans PHP5.3. La fonction anonyme est une fonction sans nom défini. Gardez cela à l’esprit et vous pourrez comprendre la définition des fonctions anonymes.

Introduction à la classe Closure (PHP 5 >= 5.3.0), une classe utilisée pour représenter les fonctions anonymes (introduites dans PHP 5.3) produira des objets de ce type. PHP Comment utiliser et présenter la classe Closure.

La classe PHP Closure a été introduite auparavant dans l'interface prédéfinie PHP, mais ce n'est pas une interface, c'est une classe finale interne. La classe Closure est utilisée pour représenter des fonctions anonymes, et toutes les fonctions anonymes sont des instances de la classe Closure.

$func = function() {
  echo 'func called';
};
var_dump($func); //class Closure#1 (0) { }
$reflect =new ReflectionClass('Closure');
var_dump(
  $reflect->isInterface(), //false
  $reflect->isFinal(), //true
  $reflect->isInternal() //true
);
Copier après la connexion

La structure de la classe Closure est la suivante :

Closure::__construct — une construction utilisée pour prohibit instanciation Function
Closure::bind — Copie une fermeture et lie l'objet $this spécifié à la portée de la classe.
Closure::bindTo — Copiez l'objet de fermeture actuel et liez l'objet $this et la portée de classe spécifiés.

Regardez un exemple de liaison de $this objet et scope :

class Lang
{
  private $name = 'php';
}
$closure = function () {
  return $this->name;
};
$bind_closure = Closure::bind($closure, new Lang(), 'Lang');
echo $bind_closure(); //php
Copier après la connexion

De plus, PHP utilise la méthode magique __invoke() Vous pouvez transformer un cours en clôture :

class Invoker {
  public function __invoke() {return __METHOD__;}
}
$obj = new Invoker;
echo $obj(); //Invoker::__invoke
Copier après la connexion

Ce qui précède représente l'intégralité du contenu de cet article. J'espère qu'il sera utile à l'apprentissage de chacun. Pour plus de contenu connexe, veuillez suivre le site Web PHP chinois !

Recommandations associées :

À propos de l'analyse de la fonction move_uploaded_file() de PHP

Comment résoudre le problème de l'index non défini demandé par PHP

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