Closure::bind

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

Closure::bind Dupliziert eine Closure mit einem bestimmten gebundenen Objekt und Geltungsbereich einer Klasse

Beschreibung

publicstaticClosure::bind(Closure$closure, ?object$newThis, object|string|null$newScope = "static"): ?Closure

Diese Methode ist die statische Version von Closure::bindTo(). Siehe die Dokumentation zu dieser Methode für weitere Informationen.

Parameter-Liste

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.

Rückgabewerte

Gibt ein neues Closure-Objekt zurück oder null, wenn ein Fehler auftritt.

Beispiele

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

Siehe auch

To Top