В PHP появился синтаксис стрелочной функции в версии 7.4. Это просто сокращенный способ написания анонимных функций, вроде как. Основное различие между анонимными функциями и стрелочными функциями в PHP заключается в использовании ключевого слова use. Чтобы иметь доступ к области за пределами анонимной функции, вы должны использовать ключевое слово use. Стрелочные функции автоматически получают доступ к области за пределами функции.
Анатомия стрелочной функции.
Стрелочная функция начинается с сокращенного ключевого слова функции fn (); параметры могут быть объявлены в круглых скобках. Стрелка (= ›) идет сразу после fn (),, что означает, что все, что будет дальше, будет возвращено. Вы не можете ввести здесь выражение, подобное инструкции echo, поскольку стрелочная функция неявно использует инструкцию return. Стрелочная функция также имеет доступ к глобальной переменной $ global_var. Нам не нужно реализовывать ключевое слово use, как мы это делали до сих пор с анонимными функциями. Мы могли бы использовать анонимную функцию с помощью ключевого слова use для выполнения той же задачи.
Если вы читали мою статью о ключевом слове use, то знаете, что:
use получает значение глобальной переменной, когда функция определена, а global получает значение переменной при вызове функции
Таким образом, даже если мы изменим глобальную переменную после определения, но до вызова функции, результат все равно останется прежним.
В приведенном выше примере стрелочная функция вызывается в строке 7. Стрелочная функция возвращает 10, поскольку она добавляет значение глобальной переменной, равное 5, к значению аргумента, которое также является 5. В строке 9 значение глобальной переменной изменяется на 10. Однако при вызове стрелочной функции в строке 11 по-прежнему отображается 10. Если глобальная переменная была получена при вызове функции, значение будет 15, но это не относится к функциям стрелок или анонимным функциям, которые неявно или явно используют ключевое слово use.
Теперь, когда мы понимаем, как работают стрелочные функции, давайте рассмотрим еще несколько примеров. Мы начнем с создания замыкания и преобразования его в стрелочную функцию.
Замыкание назначается $ stuff_dogs_say и затем вызывается в строке 7. Анонимная функция echoes out Dog говорит, что Cays отстой. Преобразовать это в стрелочную функцию довольно просто. Помните, что стрелочные функции только возвращают значение; они не могут использовать инструкцию echo для внутренних целей.
Начнем с создания переменной $ stuff_dogs_say и присвоения ей функции стрелки. Стрелочная функция начинается с fn (), за которым следует стрелка. Строка Собака говорит, что кошки сосут возвращается неявно. Нам просто нужно поместить строку сразу после синтаксиса стрелки, и функция стрелки немедленно вернет ее. Затем мы используем оператор echo с вызовом функции в строке 5 для выполнения кода.
Давайте посмотрим на другой пример. На этот раз мы передадим аргумент стрелочной функции.
- Создаем стрелочную функцию. Функция объявлена с параметром $ say. После вызова функции аргумент будет объединен со строкой Dogs say и возвращен.
- PHP видит инструкцию echo в строке 5 и начинает выполнение.
- Он вызывает стрелочную функцию $ stuff_dogs_say и передает ей строковый аргумент Let Me Out.
- PHP входит в функцию стрелки, объединяет аргумент со строкой Dogs say и возвращает новую строку Dogs say Let Me Out.
- PHP возвращается к строке 5 и выводит строку Dogs say Let Me Out.
Это должно помочь вам установить стрелочные функции. На самом деле это просто способ сделать небольшие укупорочные средства более аккуратными.
dinocajic / php-7-youtube-tutorials
Код для руководств по PHP 7.x YouTube. github.com