Ich möchte in der Lage sein, eine PHP-Funktion aufzurufen, aber nur, wenn die Anzahl der Elemente übereinstimmt, die Anzahl der von der Funktion akzeptiert Elemente und wenn es übereinstimmt, ich möchte sie 1 als 1 und nicht als ein Array übergeben.Wie dynamisch PHP-Methode aufrufen und mehrere Variablen nicht in einem Array übergeben?
Derzeit habe ich den folgenden Code, der den Job erledigt, aber ist chaotisch.
call_user_func($functionname, $vars);
Dies wurde Schlagen Probleme, wenn ich eine Funktion hatte, die ein Array von 4 Elementen erwartet, wurde aber nur 3 hindurchgegangen ist zu überprüfen und sicherzustellen, dass alle Vars existieren macht Funktionen ein bisschen chaotisch zu schreiben. Ich habe eine bessere Lösung basierend auf Reflektion. how to dynamically check number of arguments of a function in php, aber ich bin in einem letzten Schritt kurz. Wenn die Anzahl der Argumente mit der Anzahl der Argumente in einer Funktion übereinstimmt, kann ich diese Methode aufrufen, aber ich weiß nicht, wie ich diese Methode richtig aufrufen soll. Ich habe eine Reihe von Variablen. Ich muss diese in die Funktion eingeben, damit ich etwas wie folgt tun kann.
function foo($var1, $var2, $var3)
{
//I know all 3 vars exist and dont need to verify first
}
if(count($arrayof3elements) == get_method_var_count("foo") {
dynamically_call_method("foo", $arrayof3elements);
}
[ 'call_user_func_array'] (http://php.net/manual/en/function.call-user-func-array.php) akzeptiert ein Array als 2. Argument, sondern übergibt sie an die Funktion als separate Parameter (wie Sie wollen). – naththedeveloper