PHP closure function detailed, PHP closed function
The anonymous function is also called a closure function (closures allows you to create a function that is not specified, most often as the value of a callback function parameter.
The closure function does not have a function name, and the defined variable is treated as a function directly when function () is passed into the variable.
$CL = function ($name) { return sprintf (' Hello%s ', name); } echo $cli (' fuck ') '
Called directly by a variable name that is defined as an anonymous function.
echo Preg_replace_callback (' ~-([A-z] ~ ', function ($match) { return Strtoupper ($match [1]);}, ' Hello-world '); '
Using the Use
$message = ' Hello '; $example = function () use ($message) { var_dump ($message);}; Echo $example ();//Output Hello$message = ' world ';//output Hello because the value of the inherited variable is when the function is defined and not when the function is called Echo $example ();/Reset to hello$ message = ' Hello ';//here Reference $example = function () use (& $message) {var_dump ($message);}; Echo $example ();//Output Hello$message = ' world '; echo $example ();//Here the output world//closure function is also used for normal value $message = ' Hello '; $example = function ($data) use ($message) { return "{$data},{$message}";}; echo $example (' World ');
Example
class cart{//defines constants in the class with the Const keyword, rather than the usual define () function. Const Price_butter = 1.00; Const PRICE_MILK = 3.00; Const PRICE_EGGS = 6.95; protected $products = []; Public function Add ($product, $quantity) {$this->products[$product] = $quantity; The Public Function getquantity ($product) {//has the return isset defined ($this->products[$product])? $this->products[$pro Duct]:false; The Public Function gettotal ($tax) {$total = 0.0; $callback = function ($quantity, $product) use ($tax, & $total) {//constant Returns the value of the constant//__class__ returns the class name $price = constant (__class__. "::P rice_". Strtoupper ($product)); $total + = ($price * $quantity) * ($tax +1.0); }; The Array_walk () function applies a user-defined function to each element in an array. In the function, the key name and key value of the array are parameter Array_walk ($this->products, $callback); Callback anonymous function return round ($total, 2); }} $my _cart = new Cart (), $my _cart->add (' Butter ', 1), $my _cart->add (' Milk ', 3); $my _cart->add (' eggs ', 6);p rint ( $my _cart->gettotal (0.05));
The above is about the PHP closure function related content, I hope that everyone's learning is helpful.
Articles you may be interested in:
- Discussion on the problems of PHP closure characteristics in practical application
- PHP Closure (Closure) using the detailed
- PHP Closure Instance parsing
- A brief analysis of the closure (anonymous function) in PHP
- PHP's Closure (Closure) anonymous function
http://www.bkjia.com/PHPjc/1099068.html www.bkjia.com true http://www.bkjia.com/PHPjc/1099068.html techarticle php closure function in detail, PHP closed function Details anonymous function is also called the closure function (closures allows to create a function that is not specified, most often used as the value of the callback function parameters. Closed Bag ...