So schreiben Sie mehrere Ausdrücke in PHP-Pfeilfunktionen

Lesezeit: 2 Minuten

Emeka Mbahs Benutzeravatar
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

Benutzeravatar von Blackhole
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

1452790cookie-checkSo schreiben Sie mehrere Ausdrücke in PHP-Pfeilfunktionen

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy