Anonyme Funktion/Closure und mit self:: oder static::

Arbeite ich mit anonymen Funktionen, wo ich bin erstellen anonyme Funktion außerhalb des Objekts, und klicken Sie dann hinzufügen, um ein Objekt später in der es verwendet wird, mit __callStatic magic-Funktion. Die Verschlüsse, die Hinzugefügt werden enthalten Methoden von der übergeordneten Klasse. Ich Frage mich, ob ich wäre in der Lage, um diese Methoden von der Schließung?

Jetzt bekomme ich diesen Fehler:

EmptyObject::addMethod('open', function(){
    if (static::_hasAdapter(get_class(), __FUNCTION__))
            return self::_callAdapter(get_class(), __FUNCTION__, $details);

    echo '<p>You have mail!</p>';
});

wirft diesen Fehler:

Fatal error: Cannot access statisch:: wenn keine Klasse scope ist aktiv in

Und

//Add the functions
EmptyObject::addMethod('open', function(){
    if (EmptyObject::_hasAdapter('EmptyObject', __FUNCTION__))
            return EmptyObject::_callAdapter('EmptyObject', __FUNCTION__, $details);

    echo '<p>You have mail!</p>';
});

diesen Fehler auslösen, weil die Methode ist geschützt

Fatal error: Uncaught exception 'BadMethodCallException' with message 'Methode '_hasAdapter' wurde nicht gefunden in Klasse EmptyObject'

  • Alte php.. In 5.5.9 ich kann sehen, 'static::" in anonimous-Funktion
InformationsquelleAutor Devin Dixon | 2011-11-27
Schreibe einen Kommentar