Starting with the version 5.3, PHP introduced Anonymous functions, known as Closures.
This type of functions have no specified name. They are most useful as the value of callback.

1. Example, Anonymous function as callback function.
$arr = array(' hello word ', ' Have <b>good day</b>');

// removes tags and whitespace from the beginning and end of each array element
// capitalize the first character of each word
$arr = array_map(function($elm){
 return ucwords(trim(strip_tags($elm)));
}, $arr);

var_export($arr);            // array ( 0 => 'Hello Word', 1 => 'Have Good Day' )

2. Closures can also be used as the values of variables (notice how the function is called, using the variable name, including the $ character).
$website = function($name) {
  return 'http://www.'. $name. '.net';

echo $website('coursesweb');           //
echo $website('marplo');               //

3. Closures can also be used inside another function. In the following example it is used closures to create HTML List elements.
// receives an array with elements that will form the <li>
function ulList($ar_items) {
  $li = function($item) {
    return '<li>'. $item. '</li>';

  // traverse the array received in parameter, calls $li() to create the <ul><li>
  $ul = '<ul>';
  foreach($ar_items as $item) {
    $ul .= $li($item);
  $ul .= '<ul>';

  return $ul;

$ar_items = array('li 1', 'li 2', 'li 3');
echo ulList($ar_items);         // <ul><li>li 1</li><li>li 2</li><li>li 3</li><ul>

- Another example with anonymous function inside other function. Notice the using of the use() , to can use the outside variables inside anonymous function.
function test($a) {
  $b = $a / 2;
  $c = function($a) use($b) {
    return $a + $b;

  return $c($a);

echo test(10);         // 15

4. Closures can be a useful tool for object-oriented programming. Starting with PHP 5.4 , $this can be used in anonymous functions.
class A {
  private $value = 1;
  public function getVal() {
    return function() { return $this->value * 2; };

$a = new A;
echo $a->getVal();        // 2

Daily Test with Code Example

Which tag is used to add definition lists into a <dl> element?
<dt> <dd> <li>
  <dd> - Hyper Text Markup Language</dd>
  <dd> - Language for web pages</dd>
Which CSS property can hide an element on page, letting an empty space in its place?
display position visibility
#id {
  visibility: hidden;
Click on the event which is triggered when the mouse clicks on an object.
onclick onmouseover onfocus
document.getElementById("id").onclick = function(){
Indicate the PHP variable that contains the contents of both $_GET, $_POST, and $_COOKIE arrays.
if(isset($_REQUEST["id"])) {
  echo $_REQUEST["id"];
PHP Anonymous functions - Closures

Last accessed pages

  1. SHA1 Encrypt data in JavaScript (6466)
  2. Get and change IFrame content through a JavaScript script created in another IFrame (7877)
  3. Insert, Select and Update NULL value in MySQL (20962)
  4. Get and Modify content of an Iframe (10632)
  5. Select in MySQL, Output results in HTML Table (1366)

Popular pages this month

  1. Qwop (2954)
  2. Get Attribute (ID, Class, Name, Title, Src) with jQuery (2311)
  3. Get the value of the selected /checked checkboxes in a form (1462)
  4. Insert, Select and Update NULL value in MySQL (1300)
  5. Add, Change, and Remove Attributes with jQuery (1202)