激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務(wù)器之家:專(zhuān)注于服務(wù)器技術(shù)及軟件下載分享
分類(lèi)導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達(dá)式|C/C++|IOS|C#|Swift|Android|VB|R語(yǔ)言|JavaScript|易語(yǔ)言|vb.net|

香港云服务器
服務(wù)器之家 - 編程語(yǔ)言 - PHP教程 - PHP回調(diào)函數(shù)及匿名函數(shù)概念與用法詳解

PHP回調(diào)函數(shù)及匿名函數(shù)概念與用法詳解

2019-10-17 11:02lvfk PHP教程

這篇文章主要介紹了PHP回調(diào)函數(shù)及匿名函數(shù)概念與用法,結(jié)合實(shí)例形式詳細(xì)分析了PHP回調(diào)函數(shù)及匿名函數(shù)的概念、功能、使用方法及相關(guān)操作注意事項(xiàng),需要的朋友可以參考下

本文實(shí)例講述了PHP回調(diào)函數(shù)匿名函數(shù)概念與用法。分享給大家供大家參考,具體如下:

1、回調(diào)函數(shù)

PHP的回調(diào)函數(shù)其實(shí)和C、Java等語(yǔ)言的回調(diào)函數(shù)的作用是一模一樣的,都是在主線程執(zhí)行的過(guò)程中,突然跳去執(zhí)行設(shè)置的回調(diào)函數(shù);

回調(diào)函數(shù)執(zhí)行完畢之后,再回到主線程處理接下來(lái)的流程

而在php調(diào)用回調(diào)函數(shù),不想c以及java那樣直接使用函數(shù)名作為函數(shù)參數(shù),而是在php中使用函數(shù)對(duì)應(yīng)的字符串名稱(chēng)執(zhí)行

1.1、無(wú)參數(shù)回調(diào)

01<?php
02//無(wú)參數(shù)回調(diào)
03function callback(){
04  echo 'execute no parameters callback.<br/>';
05}
06function main($callback){
07  echo 'execute main start.<br/>';
08  $callback();
09  echo 'execute main end.<br/>';
10}
11main('callback');
12//結(jié)果
13ecute main start.
14execute no parameters callback.
15execute main end.

1.2、全局回調(diào)函數(shù)

01<?php
02//全局函數(shù)回調(diào)
03function callback($a,$b){
04  echo "$a<====>$b.<br/>";
05}
06$func = 'callback';
07call_user_func($func, 1,2);
08call_user_func_array($func, array(1,2));
09//結(jié)果
101<====>2.
111<====>2.

1.3、類(lèi)方法及靜態(tài)方法回調(diào)

01<?php
02class Test{
03  //成員函數(shù)
04  function callback($a,$b){
05    echo "callback $a<====>$b.<br/>";
06  }
07  public static function staticCallback($a,$b){
08    echo "staticCallback $a<====>$b.<br/>";
09  }
10}
11//非靜態(tài)方法調(diào)用方式一
12$test = new Test();
13call_user_func(array($test, 'callback'), 1,2);
14call_user_func_array(array($test, 'callback'), array(1,2));
15//非靜態(tài)方法調(diào)用方式二
16$func = 'callback';
17$test->$func(7,9);
18//靜態(tài)方法調(diào)用方式
19call_user_func(array('Test', 'staticCallback'), 4,6);
20call_user_func_array(array('Test', 'staticCallback'), array(4,6));
21call_user_func_array("Test::staticCallback", array(4,6));
22//結(jié)果
23callback 1<====>2.
24callback 1<====>2.
25callback 7<====>9.
26staticCallback 4<====>6.
27staticCallback 4<====>6.
28staticCallback 4<====>6.

2、匿名函數(shù)

2.1、 php中的匿名函數(shù)(Anonymous functions), 也叫閉包函數(shù)(closures), 允許指定一個(gè)沒(méi)有名稱(chēng)的函數(shù)。最常用的就是回調(diào)函數(shù)的參數(shù)值

1<?php
2$closureFunc = function($str){
3  echo $str.'<br/>';
4};
5$closureFunc("hello world!");
6//結(jié)果
7hello world!

2.2、閉包

2.2.1、傳入?yún)?shù),引用局部變量

01<?php
02$closureFunc = function($name){
03  $sex = '男';
04  $func = function($age)use ($name,$sex){
05    echo "$name--$sex--$age<br/>";
06  };
07  $func(23);
08};
09$func = $closureFunc("lvfk");
10//結(jié)果
11lvfk--男--23

2.2.2、返回閉包函數(shù)

01<?php
02$closureFunc = function($name){
03  echo 'closureFunc ';
04  $sex = '男';
05  echo "$name+++$sex<br/>";
06  $func = function()use ($name,$sex){
07    echo "$name--$sex<br/>";
08  };
09  return $func;
10};
11$func = $closureFunc("lvfk");
12$func();
13$func();
14//結(jié)果
15closureFunc lvfk+++男
16lvfk--男
17lvfk--男

2.2.3、閉包改變上下文的值,需要引用傳遞

01<?php
02$closureFunc = function($name){
03  $age = 1;
04  echo "$name+++$age<br/>";
05  $func = function()use ($name,&$age){
06    $age++;
07    echo "$name--$age<br/>";
08  };
09  return $func;
10};
11$func = $closureFunc("lvfk");
12$func();
13$func();
14$func();
15//結(jié)果
16lvfk+++1
17lvfk--2
18lvfk--3
19lvfk--4

以上就是對(duì)閉包的簡(jiǎn)單應(yīng)用,通過(guò)閉包,可以看出在函數(shù)外面使用閉包,傳入閉包的參數(shù)內(nèi)容,實(shí)際上可以是上下文對(duì)象內(nèi)容,

也可以在閉包內(nèi)更改上下文對(duì)象值,但必須是引用傳遞

希望本文所述對(duì)大家PHP程序設(shè)計(jì)有所幫助。

延伸 · 閱讀

精彩推薦
294
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25
主站蜘蛛池模板: 毛片118极品美女写真 | 国产手机在线视频 | 国产高清美女一级毛片久久 | 欧美性成人| 九九热国产视频 | 国产精品久久久乱弄 | 91看片在线观看视频 | 99视频有精品视频高清 | 99在线啪 | 久久国产一级片 | av在线免费网 | 蜜桃视频最新网址 | 成人宗合网 | 欧美十区| 精品在线视频播放 | 亚洲网站一区 | 久久国产精品二区 | 色综合久久久久久久久久 | 日韩黄色成人 | 91看片在线观看视频 | 日本网站一区二区三区 | 中文字幕在线亚洲精品 | 国产88久久久国产精品免费二区 | 黄污网址 | av久草 | 国产精品免费久久久久久 | 黄色av.com| 国产精品v片在线观看不卡 国产另类一区 | 黄色片网站免费在线观看 | 99爱精品在线 | 精品久久久久久久久久久αⅴ | 91看片在线播放 | 亚洲国产成人一区 | 一级免费 | 毛片免费视频观看 | 国产精品视频中文字幕 | 欧美一级淫片免费播放口 | 久久精品视频亚洲 | 久久精品视频一区二区三区 | 一本色道久久综合亚洲精品图片 | 毛片小网站 |