web-dev-qa-db-fra.com

Est-ce que PHP prend en charge la syntaxe de la fonction flèche?

Après m'être plaint de la tâche tumultueuse d'écrire le mot-clé function encore et encore, j'ai demandé à quelqu'un un moyen plus simple. La personne a dit que PHP va avoir une syntaxe de fonction de flèche similaire à es6.

const foo = (x, y) => {
    return x + y;
};

Alors que je continuais à examiner cette question, je n'ai pas pu trouver de nombreux exemples en ligne.

Quelqu'un du bon calibre peut-il expliquer cela?

À ce stade, je suis également très intéressé par la façon dont cela pourrait s'intégrer dans l'aspect OOP de PHP.

20
0xf32

Cela semble être la syntaxe décrite dans https://wiki.php.net/rfc/arrow_functions . Il a une implémentation expérimentale.

Dans la proposition de fonctions fléchées, il est mentionné que c'est une alternative à la proposition de "fermetures courtes", https://wiki.php.net/rfc/short_closures

Depuis février 2018, les versions actuelles de PHP sont 7.1.4/7.2.2.

Je ne trouve aucune confirmation que l'une ou l'autre proposition a été approuvée. Le premier est à l'état "En cours de discussion", le second est "Refusé/Retiré en faveur de http://wiki.php.net/rfc/arrow_functions ". Je pense qu'il est trop tôt pour savoir s'il sera adopté dans une future version de PHP.

25
Bill Karwin

Oui. Le nouveau RFC a été accepté pour PHP 7.4 https://wiki.php.net/rfc/arrow_functions_v2

5
JR Stream

Basé sur RFC pour PHP 7.4 le code pourrait ressembler

$users->map(
    fn($user) => $user->first_name.' '.$user->last_name
);

au lieu de

$users->map(function($user) {
    return $user->first_name.' '.$user->last_name;
});
0
Đorđe Zeljić