(PHP 5 >= 5.4.0, PHP 7)
Closure::bind — Duplique une fermeture avec un nouvel objet lié et un nouveau contexte de classe.
$closure
, object $newthis
[, mixed $newscope
= "static"
] )Cette méthode est une version statique de Closure::bindTo(). Voyez sa documentation pour plus d'informations.
closure
La fonction anonyme à lier.
newthis
L'objet auquel lier la fonction anonyme ou NULL
pour délier
newscope
Le contexte de classe à associer à la fermeture, ou 'static' pour conserver le contexte actuel. Si un objet est utilisé, son type sera utilisé. Ceci détermine les accès protégés et privés de l'objet lié. Il n'est pas autorisé de passer (un objet d') une classe interne pour ce paramètre.
Retourne un nouvel objet Closure ou FALSE
si une erreur survient
Version | Description |
---|---|
7.0.0 |
newscope ne peut plus être (un objet d') une
class interne, ce qui était possible avant cette version.
|
Exemple #1 Exemple Closure::bind()
<?php
class A {
private static $sfoo = 1;
private $ifoo = 2;
}
$cl1 = static function() {
return A::$sfoo;
};
$cl2 = function() {
return $this->ifoo;
};
$bcl1 = Closure::bind($cl1, null, 'A');
$bcl2 = Closure::bind($cl2, new A(), 'A');
echo $bcl1(), "\n";
echo $bcl2(), "\n";
?>
L'exemple ci-dessus va afficher quelque chose de similaire à :
1 2