(PHP 5 >= 5.4.0, PHP 7, PHP 8)
Closure::bind —
Duplique une fermeture avec un nouvel objet lié et un nouveau contexte de classe.
Description
public static
Closure::bind(Closure
$closure
, ?object
$newThis
, object|string|null
$newScope
= "static"): ?Closure
Liste de paramètres
-
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.
Valeurs de retour
Retourne un nouvel objet Closure, ou null
en cas d'échec.
Exemples
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";
?>
Résultat de l'exemple ci-dessus est similaire à :
1
2
Voir aussi
- fonctions anonymes
- closure::bindTo() - Duplique la fermeture avec un nouvel objet lié et un nouveau contexte de classe.