¿Hay alguna manera de emular el método mágico __call() de PHP5 en PHP4?
-
09-06-2019 - |
Pregunta
PHP5 tiene un "método mágico" __call()
que se puede definir en cualquier clase que se invoque cuando se llama a un método indefinido; es más o menos equivalente al de Ruby method_missing
o Perl AUTOLOAD
.¿Es posible hacer algo como esto en versiones anteriores de PHP?
Solución
Este artículo, Uso de la sobrecarga de llamadas a métodos en PHP 4 En DevShed podría ayudar.
Otros consejos
Lo más importante que me faltaba era que __call
existe en PHP4, pero debe habilitarlo por clase llamando overload()
, como se vio en documentos php aquí .Desafortunadamente, las firmas de la función __call() son diferentes entre PHP4 y PHP5, y no parece haber una manera de realizar una implementación que se ejecute en ambos.
Recuerdo haberlo usado y un poco de búsqueda en Google sugiere que
function __call($method_name, $parameters, &$return)
{
$return_value = "You called ${method_name}!";
}
como función miembro hará el trabajo.