我正在使用preg_replace_callback来查找和替换实时链接的文本链接:
http://www.example.com
Run Code Online (Sandbox Code Playgroud)
至
<a href='http://www.example.com'>www.example.com</a>
Run Code Online (Sandbox Code Playgroud)
我提供函数的回调函数在另一个类中,所以当我尝试:
return preg_replace_callback($pattern, "Utilities::LinksCallback", $input);
Run Code Online (Sandbox Code Playgroud)
我收到错误声称该功能不存在.有任何想法吗?
tjm*_*tjm 20
在PHP中使用类方法作为回调时,必须使用array回调的形式.也就是说,您创建一个数组,其第一个元素是类(如果方法是静态的)或类的实例(如果不是),第二个元素是要调用的函数.例如
class A {
public function cb_regular() {}
public static function cb_static() {}
}
$inst = new A;
preg_replace_callback(..., array($inst, 'cb_regular'), ...);
preg_replace_callback(..., array('A', 'cb_static'), ...);
Run Code Online (Sandbox Code Playgroud)
您正在调用的函数当然必须在您使用回调的范围内可见.
有关有效回调的详细信息,请参见http://php.net/manual/en/language.pseudo-types.php.
NB在那里阅读,似乎从5.2.3开始,只要回调函数是静态的,你就可以使用你的方法.
| 归档时间: |
|
| 查看次数: |
8738 次 |
| 最近记录: |