Переменные, анонимные, закрывающие, обратные вызовы и стрелочные функции в PHP

RedDeveloper
27.02.2023 11:51
Переменные, анонимные, закрывающие, обратные вызовы и стрелочные функции в PHP

Переменные, анонимные, закрывающие и стрелочные функции в PHP

1. Функция переменной

Когда имя переменной предваряется скобками (с параметрами или без), парсер PHP ищет функцию, имя которой совпадает со значением переменной, и вызывает ее.

<?php
  function hello(){
   echo "Hello Nabil hasan";
  }
  $var = "Hello";
  $var(); // prints "Hello Nabil hasan"
?>

Или

<?php
function add($x, $y){
   echo $x+$y;
}
$var = "add";
$var(10,20); // 30
?>

2. Анонимная функция

Анонимная функция - это функция без какого-либо определенного пользователем имени, поэтому она и называется анонимной. круто на !!! Ее также называют закрывающей или лямбда-функцией. Здесь функция хранится в переменной.

Пример :

$var=function ($arg1, $arg2) { return $val; };

<?php

$multiply = function ($x, $y) {
 return $x * $y;
};
echo $multiply(10, 20); // 200

3. Закрытие

Переменную из родительской области видимости. Поэтому для решения этой проблемы мы можем использовать закрытие. Оно может получить доступ к переменной из родительской области видимости и использовать ее в функции для получения ожидаемых результатов.

<?php
$x = 5;
$say = function ($y) use ($x) {
   $x = $x * $y ;
   echo $x ;
};
$say(7);
?>

4. Функция обратного вызоваАнонимная функция не может получить доступ к переменной из родительской области видимости.

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

<?php
function my_callback($item) {
  return strlen($item);
}

$strings = ["apple", "orange", "banana", "coconut"];
$lengths = array_map("my_callback", $strings);
print_r($lengths);
?>

// same code differently 

<?php
$strings = ["apple", "orange", "banana", "coconut"];
$lengths = array_map( function($item) { return strlen($item); } , $strings);
print_r($lengths);
?>

5. Функция стрелки

Стрелочные функции являются более краткой версией анонимных функций. Стрелочные функции можно рассматривать как сокращенные функции, которые автоматически наследуют переменные родительской области видимости. Это преимущество стрелочных функций перед обычными и даже анонимными функциями.

Синтаксис:

$myFunction = (arg1, arg2, ...argN) => {
    statement(s)
}
or 
$myFunction = (arg1, arg2, ...argN) => expression

Часто fn() используется в php как стрелочная функция.

Fn(arguments) => возвращаемое выражение;

<?php
$y = 1;
$fn1 = fn($x) => $x + $y;
$fn2 = function ($x) use ($y) {
    return $x + $y;
};

echo ($fn1(3));
?>
Почему в Python есть оператор &quot;pass&quot;?
Почему в Python есть оператор "pass"?

05.05.2023 14:00

Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.

Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом

05.05.2023 11:59

Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря своим методам, они делают код очень простым для понимания и читабельным.

JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы

05.05.2023 11:57

Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний, то, не теряя времени, практикуйте наш бесплатный онлайн тест 1100+ JavaScript MCQs и развивайте свои навыки и знания.

Массив зависимостей в React
Массив зависимостей в React

05.05.2023 09:44

Все о массиве Dependency и его связи с useEffect.