Php-mysql Course

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.
<?php
$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).
<?php
$website = function($name) {
  return 'http://www.'. $name. '.net';
};

echo $website('coursesweb');           // https://coursesweb.net
echo $website('marplo');               // https://marplo.net
?>

3. Closures can also be used inside another function. In the following example it is used closures to create HTML List elements.
<?php
// 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.
<?php
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.
<?php
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

HTML
CSS
JavaScript
PHP-MySQL
What attribute makes a radio button or checkbox input selected?
checked="checked" selected="selected" disabled="disabled"
<input type="checkbox" name="a_name" value="value" checked="checked" />
What CSS value scales the background image to the largest size contained within the element?
repeat-x contain linear-gradient
#id {
  background:url("path_to_image.png");
  background-size:contain;
  background-repeat:no-repeat;
}
What operator is used to determine the rest of the division of two numbers?
% * /
var rest8_7 = 8 % 7;
alert(rest8_7);
Indicate the PHP function that rounds a number up to the next highest integer.
floor() ceil() abs()
$nr = ceil(3.5);
echo $nr;        // 4
PHP Anonymous functions - Closures

Last accessed pages

  1. SHA256 Encrypt hash in JavaScript (26778)
  2. PHP Simple HTML DOM Parser (11532)
  3. JavaScript strip_tags and stripslashes (7259)
  4. Working with HTML attributes in PHP (12410)
  5. Convert XML to JSON in JavaScript (30790)

Popular pages this month

  1. PHP Unzipper - Extract Zip, Rar Archives (99)
  2. Courses Web: PHP-MySQL JavaScript Node.js Ajax HTML CSS (86)
  3. SHA256 Encrypt hash in JavaScript (71)
  4. querySelector and querySelectorAll (50)
  5. SHA1 Encrypt data in JavaScript (45)