Когда имя переменной предваряется скобками (с параметрами или без), парсер 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 ?>
Анонимная функция - это функция без какого-либо определенного пользователем имени, поэтому она и называется анонимной. круто на !!! Ее также называют закрывающей или лямбда-функцией. Здесь функция хранится в переменной.
Пример :
$var=function ($arg1, $arg2) { return $val; };
<?php $multiply = function ($x, $y) { return $x * $y; }; echo $multiply(10, 20); // 200
Переменную из родительской области видимости. Поэтому для решения этой проблемы мы можем использовать закрытие. Оно может получить доступ к переменной из родительской области видимости и использовать ее в функции для получения ожидаемых результатов.
<?php $x = 5; $say = function ($y) use ($x) { $x = $x * $y ; echo $x ; }; $say(7); ?>
Функция обратного вызова - это функция, которая передается в качестве аргумента в другую функцию. Любая существующая функция может быть использована в качестве функции обратного вызова 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); ?>
Стрелочные функции являются более краткой версией анонимных функций. Стрелочные функции можно рассматривать как сокращенные функции, которые автоматически наследуют переменные родительской области видимости. Это преимущество стрелочных функций перед обычными и даже анонимными функциями.
Синтаксис:
$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)); ?>
20.08.2023 18:21
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в 2023-2024 годах? Или это полная лажа?".
20.08.2023 17:46
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
19.08.2023 18:39
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в частности, магию поплавков и гибкость flexbox.
19.08.2023 17:22
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для чтения благодаря своей простоте. Кроме того, мы всегда хотим проверить самые последние возможности в наших проектах!
18.08.2023 20:33
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий их языку и культуре.
14.08.2023 14:49
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип предназначен для представления неделимого значения.