PHP 像 JavaScript 一样,很方便使用回调函数,函数名就像一个普通的变量名一样可作为其他函数的参数,即成为一个让宿主函数调用的回调函数。但回调函数的用法依据回调函数是否是全局函数还是一个类中的函数是有区别的。比如 PHP 的preg_replace_callback — 用回调函数执行正则表达式的搜索和替换函数可以接受一个回调函数,我们来看这种区别。
如果是全局的回调函数,那容易,只要写上函数名作为字符串的形式传入就行的,看:
1 2 3 4 5 6 7 |
/**@author Unmi*/ function inverse($matches) { return $matches[2].":".$matches[1]; } $text = preg_replace_callback ("/(\d{7}):(.+)/", 'inverse' , '1125535:fantasia@sina.com'); echo $text; //Output result: fantasia@sina.com:1125535 |
而如果 preg_replace_callback 函数是在类成员函数中被调用,同时 inverse 回调函数也是该类的成员函数,写法就不一样了。要是仍然写成下面这种方式的话: 阅读全文 >>