Detailed explanation of the use of PHP callback functions and anonymous functions

php中世界最好的语言
Release: 2023-03-22 07:20:02
Original
1646 people have browsed it

This time I will bring you PHP callback function and anonymous functiondetailed explanation of usage, precautionsfor using PHP callback function and anonymous function, what are the following? This is a practical case, let’s take a look at it.

The examples in this article describe the concepts and usage of PHP callback functions and anonymous functions. Share it with everyone for your reference, the details are as follows:

1. Callback function

The callback function of PHP is actually the same as that of C, Java and other languages The function of the callback function is exactly the same. During the execution of the main thread, it suddenly jumps to execute the set callback function;

After the callback function is executed, it returns to the main thread to handle the next process

When calling the callback function in PHP, you don’t want to directly use the function name as the function parameter like C and Java. Instead, use the string name corresponding to the function in PHP to execute

1.1. No-parameter callback

<?php
//无参数回调
function callback(){
  echo &#39;execute no parameters callback.<br/>';
}
function main($callback){
  echo 'execute main start.<br/>';
  $callback();
  echo 'execute main end.<br/>';
}
main('callback');
//结果
ecute main start.
execute no parameters callback.
execute main end.
Copy after login

1.2. Global callback function

<?php
//全局函数回调
function callback($a,$b){
  echo "$a<====>$b.<br/>";
}
$func = 'callback';
call_user_func($func, 1,2);
call_user_func_array($func, array(1,2));
//结果
1<====>2.
1<====>2.
Copy after login

1.3. Class method and static method callback

<?php
class Test{
  //成员函数
  function callback($a,$b){
    echo "callback $a<====>$b.<br/>";
  }
  public static function staticCallback($a,$b){
    echo "staticCallback $a<====>$b.<br/>";
  }
}
//非静态方法调用方式一
$test = new Test();
call_user_func(array($test, 'callback'), 1,2);
call_user_func_array(array($test, 'callback'), array(1,2));
//非静态方法调用方式二
$func = 'callback';
$test->$func(7,9);
//静态方法调用方式
call_user_func(array('Test', 'staticCallback'), 4,6);
call_user_func_array(array('Test', 'staticCallback'), array(4,6));
call_user_func_array("Test::staticCallback", array(4,6));
//结果
callback 1<====>2.
callback 1<====>2.
callback 7<====>9.
staticCallback 4<====>6.
staticCallback 4<====>6.
staticCallback 4<====>6.
Copy after login

2. Anonymous function

2.1. Anonymous functions in PHP, also called closures, allow you to specify a function without a name. The most commonly used ones are callback function parametersvalue

<?php
$closureFunc = function($str){
  echo $str.'<br/>';
};
$closureFunc("hello world!");
//结果
hello world!
Copy after login

2.2, closure

2.2.1, passing in parameters and referencing local variables

<?php
$closureFunc = function($name){
  $sex = '男';
  $func = function($age)use ($name,$sex){
    echo "$name--$sex--$age<br/>";
  };
  $func(23);
};
$func = $closureFunc("lvfk");
//结果
lvfk--男--23
Copy after login

2.2.2. Return closure function

<?php
$closureFunc = function($name){
  echo 'closureFunc ';
  $sex = '男';
  echo "$name+++$sex<br/>";
  $func = function()use ($name,$sex){
    echo "$name--$sex<br/>";
  };
  return $func;
};
$func = $closureFunc("lvfk");
$func();
$func();
//结果
closureFunc lvfk+++男
lvfk--男
lvfk--男
Copy after login

2.2.3. Closure changes the value of the context, which requires reference passing

<?php
$closureFunc = function($name){
  $age = 1;
  echo "$name+++$age<br/>";
  $func = function()use ($name,&$age){
    $age++;
    echo "$name--$age<br/>";
  };
  return $func;
};
$func = $closureFunc("lvfk");
$func();
$func();
$func();
//结果
lvfk+++1
lvfk--2
lvfk--3
lvfk--4
Copy after login

I believe you have mastered it after reading the case in this article For more exciting methods, please pay attention to other related articles on the php Chinese website!

Recommended reading:

PHP directly implements the generation of poster advertisements

##PHP determines whether WeChat or browser opens

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

Related labels:
source:php.cn
Statement of this Website
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
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template