Ich habe eine Webservice-Klasse mit einer Reihe von privaten Funktionen. Ich habe eine Hauptfunktion, die entscheidet, welche Funktion gemäß dem ersten Parameter des Web-Service-Aufrufs aufgerufen wird.
$actions = [
"CHECK_LOGIN" => "checkLogin"
, "CHECK_FB" => "checkFB"
, "GET_DETAILS" => "getDetails"
, "SAVE_DETAILS" => "saveDetails"
, "CHANGE_PWD" => "saveDetails"
, "SEND_ECODE" => "sendEmailCode"
]
So, ist es einfach zu finden, die nach dem Parameter aufrufen Funktion übergeben:
if (!array_key_exists($action, $actions))
$rep = ["status" => STATUS_ERROR, "errMsg" => "Action '$action' unknown"];
else {
$method = $actions[$action];
$rep = $method($req);
}
Mein Problem ist, dass ich nicht „$ method“ nennen kann, was immer es ist (zB " checkFB "), ich muss $ this-> method aufrufen (zB" $ this-> checkFB ") Wie lege ich das $ this-> vor den Funktionsnamen im $ actions-Array ??
es selbst gelöst: – Francesco
Ich habe versucht, "$ this-> Methode" zu nennen, aber was ich brauchte, war "$ this -> $ method" !! ! – Francesco
Mögliches Duplikat von [PHP Eine Instanzmethode mit Aufruf \ _user \ _func innerhalb derselben Klasse aufrufen] (http://stackoverflow.com/questions/4288105/php-call-a-instance-method-with-call-user-- Func-innerhalb der gleichen Klasse) – Aurel