• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Viele hassen ihn, manche schwören auf ihn, wir aber möchten unbedingt sehen, welche Bilder Ihr vor Eurem geistigen Auge bzw. vor der Linse Eures iPhone oder iPad sehen könnt, wenn Ihr dieses Wort hört oder lest. Macht mit und beteiligt Euch an unserem Frühjahrsputz ---> Klick

call_user_func_array übergibt Strings, soll es aber nicht

vcr80

Gestreifter Böhmischer Borsdorfer
Registriert
06.11.08
Beiträge
3.396
Hy!

Ich schreibe gerade ein Programm, das wie das Terminal arbeiten soll, also eine Kommandozeile.

Dazu teile ich den übergebenen String aus der $_POST["command"]-Variable wie folgt auf:
Code:
$command = explode("; ", $_POST["command"]);
$function = $command[0];
for($i=1;$i<count($command);$i++){
	$param_arr[] = $command[$i];
}

Die so entstandene Variable und der Array sollen nun mit call_user_func_array() übergeben werden.

Code:
call_user_func_array($function,$param_arr)

Das funktioniert auch, aber leider nur so lange, bis ich keine Funktion aufrufe, die false und true braucht, da von im array nur Strings drinnen stehen, und ein String, egal ob da true, false oder hollodrio drinnen steht als true gewertet wird.

Was kann ich also tun?

Danke, vcr
 

Toddy

Wohlschmecker aus Vierlanden
Registriert
10.05.04
Beiträge
242
Also wenn ich dich richtig verstanden habe brauchst du sowas:

Code:
$command = explode("; ", $_POST["command"]);
$function = $command[0];
for($i=1;$i<count($command);$i++){
        if($command[$i] == 'true') {
                $param_arr = true;
                break;
        }
        elseif($command[$i] == 'false') {
                $param_arr = false;
                break;
        }
        else {
	        $param_arr[] = $command[$i];
        }
}

call_user_func_array($function,$param_arr);

oder?
 

vcr80

Gestreifter Böhmischer Borsdorfer
Registriert
06.11.08
Beiträge
3.396
Also wenn ich dich richtig verstanden habe brauchst du sowas:

Code:
$command = explode("; ", $_POST["command"]);
$function = $command[0];
for($i=1;$i<count($command);$i++){
        if($command[$i] == 'true') {
                $param_arr = true;
                break;
        }
        elseif($command[$i] == 'false') {
                $param_arr = false;
                break;
        }
        else {
	        $param_arr[] = $command[$i];
        }
}

call_user_func_array($function,$param_arr);

oder?

jap genauso hab ich das jetzt auch gelöst Hätte nur nach was naja einzeiligerem gesucht. Danke trotzdem für deine Hilfe!