Closure::bindTo
  (PHP 5 >= 5.4.0, PHP 7, PHP 8)
Closure::bindTo — 
   Dupliziert eine Closure mit einem neuen gebundenen Objekt und Geltungsbereich einer Klasse
  
  
 
  Beschreibung
  
  
  
   Das "gebundene Objekt" bestimmt den Wert, den $this im
   Funktionskörper haben wird, und der "Klassenbereich" ist eine Klasse, die
   bestimmt, auf welche private und protected Mitglieder die anonyme Funktion
   zugreifen kann. Das heißt, die für die Funktion sichtbaren Mitglieder sind
   dieselben, als ob die anonyme Funktion eine Methode der im Parameter
   newScope übergebenen Klasse wäre.
  
  
   Eine statische Closure kann zwar kein Objekt binden (der Wert des
   Parameters newThis muss null sein), aber diese
   Methode kann trotzdem verwendet werden, um den Geltungsbereich ihrer
   Klasse zu ändern.
  
  
   Diese Methode stellt sicher, dass eine nicht-statische Closure mit einer
   gebundenen Instanz einen Geltungsbereich hat und umgekehrt. Zu diesem Zweck
   wird eine nicht-statische Closure, der zwar ein Geltungsbereich, dafür aber
   nur eine eine null-Instanz gegeben wird, statisch gemacht, und eine
   nicht-statische Closure ohne Geltungsbereich, die eine Nicht-null-Instanz
   erhält, kommt in den Geltungsbereich einer nicht spezifizierte Klasse.
  
  Hinweis: 
   
    Wenn nur anonyme Funktionen dupliziert werden sollen, kann
    stattdessen cloning verwendet
    werden.
   
  
  
 
  Parameter-Liste
  
   
    - newThis
- 
     
      Das Objekt, an das die angegebene anonyme Funktion gebunden werden soll,
      oder nullwenn die Closure nicht gebunden werden soll.
 
- newScope
- 
     
      Der Bereich 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 neu erstelltes Closure-Objekt zurück oder
   null, wenn ein Fehler auftritt.
  
  
 
  Beispiele
  
   Beispiel #1 Closure::bindTo()-Beispiel
   
<?php
class A
{
    private $val;
    public function __construct($val)
    {
        $this->val = $val;
    }
    public function getClosure()
    {
        // Gibt eine Closure zurück, die an dieses Objekt und diesen
        // Bereich gebunden ist
        return function() {
            return $this->val;
        };
    }
}
$ob1 = new A(1);
$ob2 = new A(2);
$cl = $ob1->getClosure();
echo $cl(), "\n";
$cl = $cl->bindTo($ob2);
echo $cl(), "\n";
?>
    
   Das oben gezeigte Beispiel erzeugt
eine ähnliche Ausgabe wie: