Home > Article > Backend Development > What is a closure function? What is the role of closure function? (with code)
The previous article introduced you to "What is an anonymous function in PHP? How is it different from ordinary functions? (Detailed explanation and examples) ", this article continues to introduce to you what is a closure function? What is the role of closure function? (Code attached) Friends in need can refer to it. I hope it will be helpful to everyone.
What is a closure function:
Use variables of the parent function through the use keyword inside the child function. This The method is the closure function
Format:
function 父函数(){ //父函数的局部变量 $var-值 //声明廬名函数并且使用use格式实现闭包 变量- function() use(父元素变量){ }; }
The anonymous functions we learned and the closure functions we want to learn today are not used very much when we usually write code. Generally, they will appear. When writing the framework.
Specifically, let’s take the code as an example to discuss:
<?php /******* 闭包函数************/ //定义一个变量 $pph = ' 这是页面及的变量'; function father1(){ //父函数的一个局部变量 $pph = '不想上班' ; function son1( ){ global $pph; echo $pph; } son(); } father1(); ?>
Code analysis:
First, we still define a variable $pph (the page and variable), Then define a local variable of the parent function [function father()]. At this time, we have internal and external variables. Then, we global $pph, output (echo) $pph, whether the output result is the parent class or the page level ? When we ran the results, we found that the output results were at the page level (the code is shown below). Therefore, we concluded that once a global variable is called, it can only output page variables but not parent class variables.
When we write it in the form of an anonymous function, we can use the variables of the parent element. We need to use the use keyword, but when we run it, we will find an error message
The code is as follows:
function father(){ $pph = '不想上班'; function son() use($pph){ echio $pph; } son(); } father();
The running result is as follows:
Therefore this is wrong and cannot be implemented;
Use anonymous functions to implement closures;
function father(){ $pph = '不想上班'; $son = function () use($pph){ echo $pph; }; //调用内部函数 $son(); } father();
Recommended learning: "PHP Video Tutorial"
The above is the detailed content of What is a closure function? What is the role of closure function? (with code). For more information, please follow other related articles on the PHP Chinese website!