Home  >  Article  >  Backend Development  >  Detailed explanation of examples of anonymous functions and precautions in PHP

Detailed explanation of examples of anonymous functions and precautions in PHP

怪我咯
怪我咯Original
2017-06-28 11:09:29886browse

This article mainly introduces PHPAnonymous function and Notes in detail. Anonymous functions are introduced in PHP5.3. Friends who want to learn anonymous functions can For reference

php5.3 not only introduces anonymous functions but also has more and better new features. Let’s take a look at PHP anonymous functions and precautions. The specific content is as follows

PHP5.2 Before : autoload, PDO and MySQLi, type constraints
PHP5.2: JSON support
PHP5.3: Deprecated features , anonymous function, new magic method, namespace, late static binding, Heredoc and Nowdoc, const, ternary operation operator, Phar
PHP5.4: Short Open Tag, array abbreviation, Traits, built-in Web server, details modified
PHP5.5: yield, list() used for foreach, details modified
PHP5.6:Constant enhancement, variableFunction parameter, namespace enhancement

Now basically all versions after PHP5.3 are used, but it feels A common phenomenon is that many new features have not been fully popularized after such a long time, and are rarely used in projects.

Look at PHP anonymous functions:

'test' => function(){
  return 'test'
},

The definition of PHP anonymous functions is very simple, which is to assign a value to a variable, but this value is a function.

The above is to use the Yii framework to configure the components file and add a test configuration.

What are PHP anonymous functions?

See the official explanation:

Anonymous functions, are also called closure functions (closures), allowing temporary creation A function with no specified name. The value most commonly used as a callback function argument. Of course, there are other applications as well.

Anonymous function example

<?php
echo preg_replace_callback(&#39;~-([a-z])~&#39;, function ($match) {
 return strtoupper($match[1]);
}, &#39;hello-world&#39;);
// 输出 helloWorld
?>

Closure functions can also be used as the value of variables. PHP will automatically convert such expressions into object instances of the built-in class Closure. The method of assigning a closure object to a variable is the same as the syntax of ordinary variable assignment. A semicolon must be added at the end:

Anonymous function variable assignment example

<?php
$greet = function($name)
{
 printf("Hello %s\r\n", $name);
};
$greet(&#39;World&#39;);
$greet(&#39;PHP&#39;);
?>

The closure can be obtained from Variables are inherited from the parent scope. Any such variables should be passed in using the use language construct.

Inherit variables from the parent scope

<?php
$message = &#39;hello&#39;
// 没有 "use"
$example = function () {
 var_dump($message);
};
echo $example();
// 继承 $message
$example = function () use($message) {
 var_dump($message);
};
echo $example();
// Inherited variable&#39;s value is from when the function
// is defined, not when called
$message = &#39;world&#39;echo $example();
// Reset message
$message = &#39;hello&#39;
// Inherit by-reference
$example = function () use(&$message) {
 var_dump($message);
};
echo $example();
// The changed value in the parent scope
// is reflected inside the function call
$message = &#39;world&#39;echo $example();
// Closures can also accept regular arguments
$example = function ($arg) use($message) {
 var_dump($arg . &#39; &#39; . $message);
};
$example("hello");
?>

Notes on anonymous functions in php

After php5.3, php adds anonymous functions Use, an error occurred when using anonymous today. You cannot declare and use it like a php function. Look at the code in detail

$callback=function(){ 
 return "aa"; 
}; 
echo $callback();

It prints out as aa;

Look at the following example:

echo $callback(); 
$callback=function(){ 
 return "aa"; 
};

An error was reported at this time! $callback is undeclared, but no error will be reported when using functions declared by PHP itself!

function callback(){ 
 return "aa"; 
} 
echo callback(); //aa 
 
echo callback(); //aa 
function callback(){ 
 return "aa"; 
}

Both of these are printed aa;

When using anonymous functions, anonymous functions are used as variables and must be declared in advance. The same is true in js! ! ! ! !

The above is the PHP anonymous functions and precautions introduced to you. I hope it will be helpful to your study.

The above is the detailed content of Detailed explanation of examples of anonymous functions and precautions in PHP. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn