> 小邪今天研究下 WordPress 的 Callback 回调函数,因为之前在万戈兄那里看到有关的文章。
> 结果还是没搞懂,万戈兄说:“回调就是先定义一个函数,然后引用它,就是这么简单。”

> 那么小邪就一边学习研究一下回调函数的概念和作用,一边总结一下,(*^__^*) 嘻嘻。
> P.s. 小邪生病,变成了春哥附身,曾哥附体,拉灯再世,破轮二代,火云邪神弟子,哇卡卡。
一. PHP回调函数:
1. 伪类型和文档中使用的变量:
> 字符,表示一个参数可以使用多种不同(但不一定是所有的)PHP 参数的字符类型。
> 数字,表示一个参数可以使用整型数字,也可以使用浮点数值(一种数字类型)。
> 回调,表示一些函数,像 Call_user_func() 或 Usort() 可以接受用户定义的回调函数。

> 把这个回调函数作为本函数的参数。回调函数不是普通的函数,而是面向对象的方法。
> 这些面向对象的方法里面还可以包含静态方法(小邪会在下面为静态方法专门写一个简述)。
> 每个 PHP 函数的调用都是通过我们为它们指定的一些以字符串形式存储的名称。
> 任何内置或者用户定义的函数都可以这样使用,除了一些 PHP 内部保留的函数名称。
> 比如 Array() Echo() Empty() Eval() Exit() Isset() List() Print() Unset() 这些函数名称。
2. 什么是静态方法:
> 小邪举一个很容易理解静态方法的例子,比网上其他让人头疼的理论要好一点儿,呵呵。
> 这里输出的结果应该是 “1 1 1 1 1 1”,因为在函数中的一般变量是不会改变的。
1 2 | function test() { $n = 1; echo $n.' '; $n++; } test(); test(); test(); test(); test(); test(); |
> 而在这里使用了 Static 静态方法之后,输出的就是 “1 2 3 4 5 6” 这个样子的结果了。
1 2 | function test() { static $n = 1; echo $n.' '; $n++; } test(); test(); test(); test(); test(); test(); |
3. Implode函数:
> 语法 - implode(separator,array) 作用是将 Array 变成一个字符串并以 separator 隔开。
1 2 3 | $arr = array('Hello','World!','Beautiful','Day!'); echo implode(" ",$arr); //输出 Hello World! Beautiful Day! |
4. 回调函数:
> 回调函数实际上就是在调用某个函数(通常可以这样做的函数,被称为 API 函数)时。
> 将自己的一个函数(这个函数才是被称为回调函数的)的地址作为参数传递给那个函数。
1 2 3 4 5 6 7 | $double = function($a) { return $a * 2; }; //这里把函数存在一个变量里面,( ⊙o⊙ ),真是强大的方法。 $numbers = range(1, 5); //随机得到 1-5 之内的数字,并存在变量 $numbers 之中。 $new_numbers = array_map($double, $numbers); //这里回调了函数,将参数二中的数组,交给了参数一中的函数来处理。 print implode(' ', $new_numbers); |
> 小邪在某本 PDF 中看到过这样一段话 -
> 回调和 API 的概念非常接近,但区别是 API 是低层提供给高层的调用。
> 一般这个函数对高层都是已知的;而回调正好相反,他是高层提供给底层的调用。
> 对于低层他是未知的,必须由高层进行安装,这个安装函数其实就是一个低层提供的 API。
> 安装后低层不知道这个回调的名字,但它通过一个函数指针来保存这个回调函数,
> 在需要调用时,只需引用这个函数指针和相关的参数指针。
二. WP中的回调函数:
1. Wp_list_comments:
> 若需要让 Wp_list_comments 函数来回调函数,就这样用 wp_list_comments($args);。
1 2 3 4 5 | $args = array( 'walker' => null, 'max_depth' => , 'style' => 'ul', 'callback' => null, 'end-callback' => null, 'type' => 'all', 'page' => , 'per_page' => , 'avatar_size' => 32, 'reverse_top_level' => null, 'reverse_children' => ); |
2. Wp_list_comments 回调函数参数:
> Avatar_size - 以像素为单位的评论者头像尺寸,默认值是 32px。
> Style - 我们可以自由定义评论列表使用的代码格式('div', 'ol', or 'ul'),默认 Ul。
> Type - 输出的内容类型('all', 'comment', 'trackback', 'pingback'),默认 All。
> Reply_text - 回复评论的提示语,默认值为 'Reply'(英文版)和 '回复'(中文版)。
> login_text - 这个是用于提示用户必须登陆后评论的语句,默认值为 'Log in to Reply'。
> Callback - 呵呵,亮点来了,在这个地方咱们就可以把回调函数给输入进去鸟。
> 传送门 - http://codex.wordpress.org/Template_Tags/wp_list_comments
> P.s. 小邪今天发现《24小时第八季》出来鸟,人人第一集字幕也搞定了,真开心,下载咯。
沙发??
@Hailo , 嘿嘿,你抢到鸟又大又软还有用MM暖过的沙发咯 ~
邪老师,俺又来学习了
@Auston Jary , 汗,邪老湿呢 ~ ╮(╯▽╰)╭ ~ 加油,哥们 ~
这个意思 就是递归吧
@阿吴 , 额,可能有点像,但是准确说应该不算吧 ~
是你提供它方法和参数,然后它用方法处理参数,给你结果 ~
研究的好透彻呀。。。。拜倒,佩服
@万戈 , 呵呵,感谢万兄给小邪这篇文章的题材 ~
我看得似懂非懂的样子..哈哈..
@柳城 , 您老又开始谦虚鸟 ~ 小邪今天都被你那个XML+CSS弄滴虎躯狂震 ~ 震了老久 ~
哎呀,整点新手入门型的,这个太高深了。。。
@Nox , 额,好滴,下一篇减缓喔 ~
唉,我总是看不懂啊看不懂,然而,可是,但是,不妨碍偶给你小窝留脚印的决心,呵呵!
@真爱左右 , 呵呵,太谢谢你咯 ~
每天都PHP啊!加油,坚持!
@Kada , 呵呵,多谢你的支持喔 ~
我不看别的就看最后那张了!
@TONY , 呵呵,那小邪可得每篇文章都给你备着 ~
array array_map ( callback $callback , array $arr1 [, array $... ] )
使用倒是会了。。怎么实现这个回调函数却不知道(为什么可以传递一个方法?)
@fatkun , 这样理解,是把一个函数放到一个变量里 ~
然后把这个变量和这个变量所需的参数给 Array_map ~
然后 Array_map 会用这个变量带来的函数去处理参数并返回结果 ~
@邪 罗刹,
我是想问怎么写一个带回调函数参数的方法。
类似这些方法:
Array_map ( callback $callback , array $arr1 [, array $... ] )
wordpress的Wp_list_comments方法?
@fatkun , 呵呵,解释起来比较长,小邪下篇文章里写一下哈 ~
呃,我是来研究图的,嘎嘎
@喵喵呜,
小邪这里第一次坐这么靠前!
@喵喵呜 , 嘻嘻,期待你坐沙发的那天 ~
@喵喵呜 , 嘿嘿嘿,研究研究也没差啦 ~
@邪 罗刹,
619说,有沙发瘾可不好……
@喵喵呜 , = =,他也知道有沙发瘾不好?!
囧,那个灌水王最近貌似萎靡掉鸟 ╮(╯▽╰)╭,杯具 ~
@邪 罗刹,
对哦,我在他博客评论,他居然回我:不理你!……= =|||
@喵喵呜 , 杯具,那个头像酷似阴井盖的家伙, 不会是失恋了吧 ~ ╮(╯▽╰)╭ ~
@邪 罗刹,
哈哈,阴井盖……小邪太逗了,想象力超丰富哦!嗯,估计他最近绯闻太多,搞不定了!
如果在图床研究方面有重大进展的话,记得通知我啊~
技术方面的我就确实没办法去学习了,对我来说难度太大了~
@exia , 恩恩,Skydrive也是不错的喔 ~
@邪 罗刹,
可是我这里访问速度很不怎么样啊~
@exia , 杯具,稳定的不多,这年头最稳定的可能就是 Skydrive 鸟 ~
虽然 Skydrive 网站的访问速度很烂 ~
但是小邪发现图片文件的访问速度还是很不错的 ~
我觉得你应该先把这个call back用起来,这样我们就看到效果了!
ps:24小时已经出了2集了哦~
还有,今天的mM,哥我不满意~
@北街 , 小邪的模板不是用 Wp_comments_list 弄的评论 ~
所以短时间没能用上,以后得花点时间搞定咯 ~
@北街 , 呵呵,24小时小邪已经下了4集720p的了,爽呆呆 ~
@邪 罗刹,
嗯,我也下了4集了~舍不得看啊~
@北街 , 真有点舍不得呐 ~ 小邪刚看了两集,都有点心疼了 ~
真厉害啊。看到万哥那篇吧。。
@超人 , 恩恩,感谢万兄给小邪的题材 ~
越玩越高级了。。。
膜拜代码帝~~
@路人假 , 呵呵,您老又谦虚哩 ~ 互相学习嘛 ~
@邪 罗刹,
呀,你的表情在邮件里不显示哦~有空弄一下吧~
@路人假 , 呵呵,不弄算鸟,在Gmail里还要每次都有个提示是否查看外部图片 ~
蛮烦的,虽然可以只出现一次,但感觉给用户的第一印象不好 ~
@邪 罗刹,
噢,原来如此。想得好周到呀~
@路人假 , 呵呵,小邪有时候比较敏感来着 ~
@Revolution , 嘿嘿,够直接 O(∩_∩)O ~
Kimozi~~小邪,黄绿橙满buff复活鸟,现在网通100M独享。。噢耶~~
速度比以前快多了~
@kaka , 收到呢,待会儿去逛逛 ~
第八季出来了?!!!!!我靠靠靠靠!!
我等这东西等了n久了哇~~
哈哈 又要开始追新看美剧的日子啦
@Kaisir.Wang , 淡定,嘎嘎,原来你也那么喜欢的说 ~
小邪最喜欢这个片子鸟 ~
有4集可以下载了喔,2集有字幕的呢 ~
呵呵,好几天没来了
看来好多都是来看最后一张图片的啊,那个是亮点
@真好网 , 呵呵,小邪终于被发现亮点鸟 ~ ╮(╯▽╰)╭
小邪JAVA怎么样?能否教教我,我最近可能要搞编程了,到时候得请教你
@Rusaer , Java小邪还没开始接触,不过小邪也是打算要开始学了呢 ~
到时候小邪应该能帮点忙的,呵呵 ~
图片很黄很暴力 嘿嘿~
@疾风 , 嘻嘻,合口味就好
小邪.....貌似这就是你的游戏了
@漠岚 , = =,貌似被你发现鸟 ~ ╮(╯▽╰)╭
来屁啊实验室看看
@619 , 呵呵,小邪下午给你搞定,上午又去医院鸟,丫的一星期被抽了4次血,杯具 ~
太过于深奥,老师来写简易一些的。。
@笨笨 , 汗,叫小邪就好,叫老湿,小邪会湿的 ╮(╯▽╰)╭ ~
一起学习php啊~ 你丫肯定是电脑前坐多了,要运动啊,身体第一的!
@羽中 , 恩恩,一起学学呢 ~
汗,被你发现鸟,小邪已经开始锻炼了呢 ~
过来收录你的博客的,特此告知,呵呵。
@diyidu , 嘻嘻,谢谢你的支持呐 ~
"春哥附身,曾哥附体,拉灯再世,破轮二代,火云邪神弟子",那岂不是比阿凡达还牛B?!
@huangjun , = =,小邪整个儿就斯巴达了 ~
不是看得很懂。
@Firm , 呵呵,打打酱油也没事喔 ~
@邪 罗刹,
呵呵,我会经常过来打酱油的
@Firm , 呵呵,你的博客也很有特色喔,加油 ~!
CallBack与API我也了解过一点,博客上调用的微博内容不就是CallBack么,是下层使用上层所以叫API,是吧。呵呵,这回又了解了一些。
@九站 , 额,不会吧,博客上调用微博内容也算 Callback 吗?
这么说你自己写的函数被微博程序调用然后输出了你想要的结果?哇,原来还可以这样 ~
小邪才发现 ~
@邪 罗刹,
1、是算callback。2、正解。
@九站 , 努力用力强力学习中 ~
回调函数文档里都说不推荐使用的,不过国内好像都用的很high