So schreiben Sie mehrere Ausdrücke in PHP-Pfeilfunktionen
Lesezeit: 2 Minuten
Emeka Mbah
Wie schreibt man eine PHP-Pfeilfunktion mit mehreren Zeilenausdrücken?
Beispiel für einen JavaScript-Einzeiler:
const dob = (age) => 2021 - age;
PHP-Einzeiler-Äquivalent:
$dob = fn($age) => 2021 - $age;
Beispiel für mehrzeiliges Javascript:
const dob = (age) => {
if (!age) {
return null;
}
const new_age = 2021 - age;
console.log("Your new age is " + new_age);
return new_age;
}
Was ist das PHP-Äquivalent für mehrere Zeilen innerhalb einer Pfeilfunktion?
Was genau fragst du? Wie fügt man den Ausdruck einfach in eine separate Zeile ein oder wie erhält man mehrere Ausdrücke? In PHP können Sie nur einen Ausdruck haben, aber Sie können ihn in mehreren Zeilen schreiben (solange es sich nur um einen einzelnen Ausdruck handelt, wie in Ihrem Beispiel für „mehrere Zeilen“).
– M. Eriksson
26. Januar 2021 um 15:15 Uhr
@MagnusEriksson Ich frage, wie man mehrere Ausdrücke oder Codezeilen in eine Pfeilfunktion einfügt. Ich habe meine Frage aktualisiert. Wenn Sie die Idee einer Pfeilfunktion verstehen, wird es hilfreich sein
– Emeka Mbah
26. Januar 2021 um 17:10 Uhr
Ich wünschte, es wäre mit PHP möglich, aber das ist nicht der Fall. Dort ist nur eine Zeile (Ausdruck) erlaubt.
– Robo Robok
8. Juni 2021 um 14:39 Uhr
Schwarzes Loch
Pfeilfunktionen in PHP haben die Form fn (argument_list) => expr. Der Funktionskörper darf nur einen einzigen Ausdruck enthalten.
Sie können den Ausdruck problemlos über mehrere Zeilen schreiben:
fn($age) =>
$age
? 2021 - $age
: null
Wenn Sie wirklich mehrere Ausdrücke benötigen, können Sie diese einfach verwenden anonyme Funktion. Die Schließungen erfolgen nicht automatisch wie bei Pfeilfunktionen, aber wenn Sie sie nicht benötigen, erhalten Sie genau das gleiche Ergebnis.
$dob = function ($age) {
if (!$age) { return null; }
$new_age = 2021 - ^$age;
echo "Your new age is ". $new_age;
return $new_age;
}
Dies ist immer noch ein einzelner Ausdruck und kein Mehrfachausdruck. Ich habe meine Frage aktualisiert.
– Emeka Mbah
26. Januar 2021 um 17:08
@EmekaMbah Ich fand die erste Zeile meiner Antwort ziemlich klar: Sie können in PHP nicht mehr als einen einzelnen Ausdruck im Körper einer Pfeilfunktion haben. Verwenden Sie dazu einfach eine Standardfunktion.
– Schwarzes Loch
26. Januar 2021 um 17:12 Uhr
OK. Habe es. Wissen Sie, ob PHP plant, dies zu ermöglichen, da ein einzelner Ausdruck normalerweise nicht der Fall ist?
– Emeka Mbah
26. Januar 2021 um 17:15 Uhr
@EmekaMbah Nein, ich habe keinen RFC dazu gesehen. Aber das ist wirklich nicht nötig, insbesondere wenn Sie keine Erfassung wie in Ihrer aktualisierten Frage benötigen: function ($age) { … } macht dasselbe wie Ihr JavaScript-Beispiel.
– Schwarzes Loch
26. Januar 2021 um 17:19 Uhr
Die Verwendung von mehrere Ausdrücke sind laut dem nicht erlaubt RFC. Es umfasst die Zuweisung nur eines einzelnen Ausdrucks. Die Erweiterung wird weiter unten im RFC besprochen, aber nicht implementiert
14527900cookie-checkSo schreiben Sie mehrere Ausdrücke in PHP-Pfeilfunktionenyes
Was genau fragst du? Wie fügt man den Ausdruck einfach in eine separate Zeile ein oder wie erhält man mehrere Ausdrücke? In PHP können Sie nur einen Ausdruck haben, aber Sie können ihn in mehreren Zeilen schreiben (solange es sich nur um einen einzelnen Ausdruck handelt, wie in Ihrem Beispiel für „mehrere Zeilen“).
– M. Eriksson
26. Januar 2021 um 15:15 Uhr
@MagnusEriksson Ich frage, wie man mehrere Ausdrücke oder Codezeilen in eine Pfeilfunktion einfügt. Ich habe meine Frage aktualisiert. Wenn Sie die Idee einer Pfeilfunktion verstehen, wird es hilfreich sein
– Emeka Mbah
26. Januar 2021 um 17:10 Uhr
Ich wünschte, es wäre mit PHP möglich, aber das ist nicht der Fall. Dort ist nur eine Zeile (Ausdruck) erlaubt.
– Robo Robok
8. Juni 2021 um 14:39 Uhr