Maison > développement back-end > tutoriel php > Classe de fermeture PHP

Classe de fermeture PHP

王林
Libérer: 2023-08-19 11:02:01
avant
850 Les gens l'ont consulté

Classe de fermeture PHP

Présentation de

Les fonctions anonymes (également connues sous le nom de lambdas) renvoient des objets de la classe Closure. Cette classe possède des méthodes supplémentaires qui offrent un contrôle supplémentaire sur les fonctions anonymes.

Syntaxe

Closure {
   /* Methods */
   private __construct ( void )
   public static bind ( Closure $closure , object $newthis [, mixed $newscope = "static" ] ) : Closure
   public bindTo ( object $newthis [, mixed $newscope = "static" ] ) : Closure
   public call ( object $newthis [, mixed $... ] ) : mixed
   public static fromCallable ( callable $callable ) : Closure
}
Copier après la connexion

Methods

private Closure::__construct ( void ) — Cette méthode est uniquement utilisée pour désactiver l'instanciation de la classe Closure. Les objets de cette classe sont créés par des fonctions anonymes.

public static Closure::bind ( Closure $closure , object $newthis [, Mixed $newscope = "static" ] ) − Closure — Copie une fermeture en utilisant un objet de liaison spécifique et une portée de classe. Cette méthode est la version statique de Closure::bindTo().

public Closure::bindTo ( object $newthis [, Mixed $newscope = "static" ] ) − Closure — Copie une fermeture en utilisant un nouvel objet de liaison et une nouvelle portée de classe. Crée et renvoie une nouvelle fonction anonyme avec le même corps et les mêmes variables de liaison, mais avec un objet différent et une nouvelle portée de classe.

public Closure::call ( object $newthis [, Mixed $... ] ) − Mixed — Liez temporairement une fermeture à newthis et appelez-la avec tous les arguments donnés.

Exemple de clôture

Démonstration en ligne

<?php
class A {
   public $nm;
   function __construct($x){
      $this->nm=$x;
   }
}
// Using call method
$hello = function() {
   return "Hello " . $this->nm;
};
echo $hello->call(new A("Amar")). "";;
// using bind method
$sayhello = $hello->bindTo(new A("Amar"),&#39;A&#39;);
echo $sayhello();
?>
Copier après la connexion

Sortie

Le programme ci-dessus affiche la sortie suivante

Hello Amar
Hello Amar
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:tutorialspoint.com
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