Das funktioniert:
%Vor% Aber PHP-Dokumente verwenden immer public
Callbacks.
Ist die Tatsache, dass Callbacks private
sein können, einfach nicht gut dokumentiert, oder macht private
zu Problemen?
Sehr seltsam. Ich habe damit herumgespielt und ein paar Stack-Spuren im Callback hinterlassen. Vielleicht waren es die statischen Aufrufe, die es mit Sichtbarkeit loslassen ließen, aber:
%Vor%Das klappt auch und der Call-Stack sieht aus wie er sollte. Das ist PHP für dich. Natürlich würde ich auf das ganze Durcheinander verzichten und jetzt einfach eine Schließung benutzen.
usort
und andere Funktionen wie array_map
sind eigentlich kontextsensitiv; Wenn Sie innerhalb einer Klasse einen nicht öffentlichen Callback verwenden, funktioniert das problemlos. Es ist nicht so, dass diese Methode von außerhalb der Klasse aufgerufen wird, sondern nur indirekt über einen Callback aufgerufen wird, und dies ist ein unterstützter Anwendungsfall.
Tags und Links php