Gibt es eine Möglichkeit PHP5 __call () magische Methode in PHP4 zu emulieren?
-
09-06-2019 - |
Frage
PHP5 hat eine „magische Methode“ __call()
that kann für jede Klasse definiert werden, die aufgerufen wird, wenn ein nicht definierter Methode aufgerufen wird - es entspricht in etwa Rubys method_missing
oder Perl AUTOLOAD
. Ist es möglich, so etwas wie dies in älteren Versionen von PHP zu tun?
Lösung
In diesem Artikel, Verwendung Methodenaufruf überladen in PHP 4 über auf DevShed helfen könnte.
Andere Tipps
Das wichtigste Bit, dass ich fehlte, dass __call
in PHP4 existiert, aber man muss es auf einer Basis pro-Klasse ermöglichen, indem overload()
Aufruf, wie in php docs hier .
Leider ist der __call () Funktion Signaturen unterschiedlich zwischen PHP4 und PHP5, und es scheint nicht ein Weg, um eine Implementierung zu machen, die in beide laufen werden.
Ich erinnere mich, mit ihm, und ein bisschen googeln legt nahe, dass
function __call($method_name, $parameters, &$return)
{
$return_value = "You called ${method_name}!";
}
als Member-Funktion wird die Arbeit tun.