PHP поддерживает первоклассные функции, что это значит - PullRequest
2 голосов
/ 11 декабря 2019

Что означает это утверждение в php,

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

Кто-нибудь объяснит кратко, я, кажется, не понимаю, читаядокументация.

Буду признателен за пример.

1 Ответ

1 голос
/ 11 декабря 2019

Википедия :

Это означает, что язык поддерживает передачу функций в качестве аргументов для других функций, возврат их в качестве значений из других функций и присвоение их переменным или их сохранениев структурах данных.

Первоначально вы могли назначать функции в виде строк или массивов для переменных:

$aFunction = 'someFunctionName';
$aFunction();
$aMethod = [$object, 'someMethodName'];
$aMethod();

Вы можете увидеть это в старом источнике. Это косвенная ссылка на функцию / метод (по названию). Текущий PHP предоставляет лучшие способы. Вы можете назначить анонимную функцию непосредственно переменной:

$aFunction = function(...$arguments) {
  var_dump($arguments);
};
$aFunction();

Или реализовать магический метод __invoke () в классе:

class A {
  public function __invoke(...$arguments) {
    var_dump($arguments);
  }
}

$aFunction = new A();
$aFunction(1, 2);

В PHP 7.4 функция быстрого вызова для простогодобавлены выражения:

$aFunction = fn(...$arguments) => var_dump($arguments);
$aFunction(1, 2);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...