
call_user_function()
或
usort()
的函数接受用户自定义的函数作为一个参数。Callback
函数不仅可以是一个简单的函数,它还可以是一个对象的方法,包括静态类的方法。
一个
PHP
函数用函数名字符串来传递。您可以传递任何内建的或者用户自定义的函数,除了
array(),
echo(),
empty(),
eval(),
exit(),
isset(),
list(),
print()
和
unset()。
一个对象的方法以数组的形式来传递,数组的
0
下标指明对象名,下标
1
指明方法名。
对于没有实例化为对象的静态类,要传递其方法,将数组
0
下标指明的对象名换成该类的名称即可。
Callback
函数实例:
复制代码
代码如下:
<?php
//
An
example
callback
function
function
my_callback_function()
{
echo
'hello
world!'
}
//
An
example
callback
method
class
MyClass
{
function
myCallbackMethod()
{
echo
'Hello
World!'
}
}
//
Type
1:
Simple
callback
call_user_func('my_callback_function')
//
Type
2:
Static
class
method
call
call_user_func(array('MyClass',
'myCallbackMethod'))
//
Type
3:
Object
method
call
$obj
=
new
MyClass()
call_user_func(array($obj,
'myCallbackMethod'))
?>
http://www.phpe.net/manual/language.pseudo-types.php
http://cn.php.net/manual/en/language.pseudo-types.php
具体看是想对元素如何 *** 作,比如 array_filter():用回调函数过滤数组中的单元,可以使用回调函数对数组中元素进行筛选剔除元素;如果是针对每个元素,使用其他函数的话,array_map :数组的每个元素应用回调函数,使用示例:
为数组每个元素执行+5计算;
$arr = [1,2,3,4,5]
#匿名函数 *** 作
$res=array_map(function($item){return $item*2 },$arr)
array_map("函数名", 数组);支持使用 函数名+数据变量 使用。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)