Поддерживает ли PHP синтаксис функции функции поддержки?

После того, как я жаловался на бурную задачу написания function ключевого слова снова и снова, я спросил кого-то о более легком способе. Человек сказал, что PHP будет иметь синтаксис функции стрелки, подобный es6.

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

Ответы

Ответ 1

Похоже, это синтаксис, описанный в https://wiki.php.net/rfc/arrow_functions. У него есть экспериментальная реализация.

В предложении о функциях стрелок упоминается, что оно является альтернативой предложению о "коротких замыканиях", https://wiki.php.net/rfc/short_closures

По состоянию на февраль 2018 года текущие версии PHP 7.1.4/7.2.2.

Я не могу найти подтверждения, что какое-либо предложение было одобрено. Первый находится в состоянии "В стадии обсуждения", второй "Отклонен/отозван в пользу http://wiki.php.net/rfc/arrow_functions ". Я думаю, что слишком рано, чтобы знать, будет ли он принят в любой будущей версии PHP.

Ответ 2

Нет.

Несколько бонусных ответов:

  • Со временем вы, вероятно, обнаружите, что ввод нового кода является одной из самых маленьких частей вашей работы. Но, может быть, вы можете найти редактор, который может автоматически завершить его для вас, если это будет большой проблемой.
  • функции стрелок действительно не так много связаны с ООП. Это немного субъективно, но в зависимости от того, кто вы спрашиваете ООП, больше о полиморфизме и обмене сообщениями, чем о чем-либо еще.

Ответ 4

Основанный на RFC для PHP 7.4 код может выглядеть так

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

вместо

$users->map(function($user) {
    return $user->first_name.' '.$user->last_name;
});