- Trending Categories
Data Structure
Networking
RDBMS
Operating System
Java
MS Excel
iOS
HTML
CSS
Android
Python
C Programming
C++
C#
MongoDB
MySQL
Javascript
PHP
Physics
Chemistry
Biology
Mathematics
English
Economics
Psychology
Social Studies
Fashion Studies
Legal Studies
- Selected Reading
- UPSC IAS Exams Notes
- Developer's Best Practices
- Questions and Answers
- Effective Resume Writing
- HR Interview Questions
- Computer Glossary
- Who is Who
PHP Anonymous functions
Introduction
Anonymous function is a function without any user defined name. Such a function is also called closure or lambda function. Sometimes, you may want a function for one time use. Closure is an anonymous function which closes over the environment in which it is defined. You need to specify use keyword in it.Most common use of anonymous function to create an inline callback function.
Syntax
$var=function ($arg1, $arg2) { return $val; };
- There is no function name between the function keyword and the opening parenthesis.
- There is a semicolon after the function definition because anonymous function definitions are expressions
- Function is assigned to a variable, and called later using the variable’s name.
- When passed to another function that can then call it later, it is known as a callback.
- Return it from within an outer function so that it can access the outer function’s variables. This is known as a closure.
Anonymous function example
Example
<?php $var = function ($x) {return pow($x,3);}; echo "cube of 3 = " . $var(3); ?>
Output
This will produce following result. −
cube of 3 = 27
Anonymous function as callback
In following example, an anonymous function is used as argument for a built-in usort() function. The usort() function sorts a given array using a comparison function
Example
<?php $arr = [10,3,70,21,54]; usort ($arr, function ($x , $y) { return $x > $y; }); foreach ($arr as $x){ echo $x . "
"; } ?>
Output
This will produce following result. −
3 10 21 54 70
Anonymous function as closure
Closure is also an anonymous function that can access variables outside its scope with the help of use keyword
Example
<?php $maxmarks=300; $percent=function ($marks) use ($maxmarks) {return $marks*100/$maxmarks;}; echo "marks=285 percentage=". $percent(285); ?>
Output
This will produce following result. −
marks=285 percentage=95