Domanda

PHP5 ha un "metodo magico" __call()che può essere definito su qualsiasi classe invocata quando viene chiamato un metodo non definito -- è più o meno equivalente a quello di Ruby method_missing o di Perl AUTOLOAD.È possibile fare qualcosa di simile nelle versioni precedenti di PHP?

È stato utile?

Soluzione

Questo articolo, Utilizzo dell'overload delle chiamate di metodo in PHP 4 su DevShed potrebbe aiutare.

Altri suggerimenti

La cosa più importante che mi mancava era quella __call esiste in PHP4, ma è necessario abilitarlo in base alla classe chiamando overload(), come visto in documenti php qui .Sfortunatamente, le firme della funzione __call() sono diverse tra PHP4 e PHP5 e non sembra esserci un modo per realizzare un'implementazione che possa essere eseguita in entrambi.

Ricordo di averlo usato e un po' di ricerca su Google lo suggerisce

function __call($method_name, $parameters, &$return)
{
  $return_value = "You called ${method_name}!";
}

come funzione membro farà il lavoro.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top