gpt4 book ai didi

php - 如何在preg_replace_callback()中使用静态方法作为回调参数?

转载 作者:可可西里 更新时间:2023-11-01 12:25:29 25 4
gpt4 key购买 nike

我正在使用 preg_replace_callback 查找文本链接并将其替换为实时链接:

http://www.example.com

<a href='http://www.example.com'>www.example.com</a>

我为函数提供的回调函数在另一个类中,所以当我尝试时:

return preg_replace_callback($pattern, "Utilities::LinksCallback", $input);

我收到一条错误消息,声称该函数不存在。有什么想法吗?

最佳答案

在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'), ...);

您调用的函数当然必须在您使用回调的范围内可见。

有关有效回调的详细信息,请参阅 http://php.net/manual/en/language.pseudo-types.php(无效链接)。

注意看了那里,好像从 5.2.3 开始,只要回调函数是静态的,就可以使用你的方法。

关于php - 如何在preg_replace_callback()中使用静态方法作为回调参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6575008/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com