Warum erhalte ich einen Parse-Fehler bei diesem Code?
$func = "do_{$something}" = $func();
?
Sie sollte korrekt sein, weil
$func = "do_{$something}";
$func = $func();
funktioniert...
Warum erhalte ich einen Parse-Fehler bei diesem Code?
$func = "do_{$something}" = $func();
?
Sie sollte korrekt sein, weil
$func = "do_{$something}";
$func = $func();
funktioniert...
Sehen Sie sich diesen Code als Beispiel an:
$a = $b = 3;
Wenn die Zuweisung von links erfolgt, wird dies wie folgt geparst:
$a = $b;
$b = 3;
was zu einem Fehler bezüglich einer undefinierten Variable führen würde.
Stattdessen wird es geparst als:
$b = 3;
$a = $b;
Was Sie zu tun versuchen, entspricht dem Folgenden:
"do_{$something}" = $func();
$func = "do_{$something}";
Das hat offensichtlich Syntaxfehler. Ihr zweiter Codeblock lässt sich nicht gut lesen, da Sie die Variable Funktionsname mit dem Ergebnis des Funktionsaufrufs überschreiben. Ein sauberer Weg, dies zu tun, wäre:
$result = call_user_func('do_' . $something);
Sie ist ungültig, weil die =
Betreiber ist rechts-assoziativ . Dies bedeutet, dass die ganz rechte =
wird zuerst ausgeführt, so dass Ihr Code eigentlich dem hier entspricht:
"do_{$something}" = $func();
$func = "do_{$something}";
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.