(PHP 5 >= 5.4.0, PHP 7, PHP 8)
Closure::bind — Dupliziert eine Closure mit einem bestimmten gebundenen Objekt und Geltungsbereich einer Klasse
$closure
, ?object $newThis
, object|string|null $newScope
= "static"): ?ClosureDiese Methode ist die statische Version von Closure::bindTo(). Siehe die Dokumentation zu dieser Methode für weitere Informationen.
closure
Die anonymen Funktionen, die gebunden werden sollen.
newThis
Das Objekt, an das die angegebene anonyme Funktion gebunden werden soll,
oder null
wenn die Closure nicht gebunden werden soll.
newScope
Der Geltungsbereich der Klasse, dem die Closure zugeordnet werden soll, oder 'static', um den aktuellen Bereich beizubehalten. Wenn ein Objekt angegeben wird, wird stattdessen der Typ des Objekts verwendet. Dieser bestimmt die Sichtbarkeit der protected und private Methoden des gebundenen Objekts. Es ist nicht erlaubt, eine interne Klasse (oder ein Objekt einer solchen) als Parameter zu übergeben.
Beispiel #1 Closure::bind()-Beispiel
<?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";
?>
Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:
1 2