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.
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 }
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.
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"),'A'); echo $sayhello(); ?>
Le programme ci-dessus affiche la sortie suivante
Hello Amar Hello Amar
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!