Closure::bind

(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

Cette méthode est une version statique de Closure::bindTo(). Voir sa documentation pour plus d'informations.

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