PHP callback函数使用方法和注意事项

yipeiwu_com6年前PHP代码库

在PHP中有些诸如 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

相关文章

10款实用的PHP开源工具

10款实用的PHP开源工具

在开发工作中,使用合适的工具可以最大化地提高效率。此外,大量的开源项目也节省了开发者重复“造轮”的时间,使得开发者可以专注于业务的实现。 本文介绍10款非常实用且开源的PHP开发辅助工具...

PHP简单实现二维数组的矩阵转置操作示例

PHP简单实现二维数组的矩阵转置操作示例

本文实例讲述了PHP简单实现二维数组的矩阵转置操作。分享给大家供大家参考,具体如下: <?php $arr1 = array( array(1,2,...

刚才在简化php的库,结果发现很多东西

php的ming库用来生成flash!虽然模块是试验性质的, 不过比较有趣。一张大大的表, 很有趣, 给人一种在8g的感觉。 sapi/php4activescript.dll (p...

php文本转图片自动换行的方法

今天无意中浏览网面的时候发现一个长微博,它可以将文本转成png图片,于是乎就研究一下PHP文本转图片的方式,其实只要是用到了PHP的扩展库,GD库来生成图片,再通过图像函数生成,代码写出...

php+Memcached实现简单留言板功能示例

php+Memcached实现简单留言板功能示例

本文实例讲述了php+Memcached实现简单留言板功能。分享给大家供大家参考,具体如下: MyPdo.php <?php class MyPdo{ privat...