Maison  >  Article  >  base de données  >  Comment utiliser la classe de fermeture php

Comment utiliser la classe de fermeture php

怪我咯
怪我咯original
2017-07-11 15:47:301040parcourir

Fonctions Anonymes , également connues sous le nom de 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.

La classe PHP Closure a été précédemment introduite dans PHPInterface prédéfinie, 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
);

La structure de la classe Closure est la suivante :

Closure::constructConstructeur
Closure::bind — Copiez une fermeture et liez 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 object et scope :

class Lang
{
  private $name = 'php';
}
$closure = function () {
  return $this->name;
};
$bind_closure = Closure::bind($closure, new Lang(), 'Lang');
echo $bind_closure(); //php
De plus, PHP utilise la

méthode magique invoke() pour transformer une classe en un fermeture :

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!

Déclaration:
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