Binden von Objektinstanzen an statische Closures

8

Ist es möglich, eine Instanz an eine statische Closure zu binden oder eine nicht statische Closure innerhalb einer statischen Klassenmethode zu erstellen?

Das ist was ich meine ...

%Vor%     
Nathaniel 31.05.2013, 17:51
quelle

2 Antworten

3

PHP bindet immer die Eltern this und scope an neu erstellte Schließungen. Der Unterschied zwischen einem statischen Abschluss und einem nicht statischen Abschluss besteht darin, dass ein statischer Abschluss scope (! = NULL) hat, aber nicht this bei create time . Ein Abschluss auf "oberster Ebene" hat weder this noch scope .

Daher muss man beim Erstellen des Verschlusses den Bereich loswerden. Glücklicherweise erlaubt bindTo genau das, sogar für statische Schließungen:

%Vor%     
smilingthax 19.02.2014, 13:16
quelle
1

Sieht so aus, als wäre dies möglicherweise nicht möglich, aus Closure :: bindTo Dokumentation

  

Statische Closures können kein gebundenes Objekt haben (der Wert des Parameters newthis sollte NULL sein), aber diese Funktion kann dennoch verwendet werden, um ihren Klassenbereich zu ändern.

    
Orangepill 31.05.2013 18:16
quelle