我需要一些帮助.因为不推荐使用preg_replace,所以我必须将所有preg_replace转换为preg_replace_callback …
我尝试过的:
更改:
$template = preg_replace ( "#\\[aviable=(.+?)\\](.*?)\\[/aviable\\]#ies","\$this->check_module('\\1','\\2')",$template );
至:
$template = preg_replace_callback ( "#\\[aviable=(.+?)\\](.*?)\\[/aviable\\]#isu",return $this->check_module($this['1'],$this['2']); $template );
错误:
Parse error: Syntax error,unexpected 'return'@H_404_15@
@H_404_15@
callback需要是一个带有一个参数的函数,这是一个匹配数组.您可以通过任何类型的
callback,包括
anonymous function.
$template = preg_replace_callback( "#\\[aviable=(.+?)\\](.*?)\\[/aviable\\]#isu",function($matches) { return $this->check_module($matches[1],$matches[2]); },$template );
(为了在匿名函数中使用$this,需要PHP> = 5.4.0)
@H_404_15@ 原文链接:https://www.f2er.com/php/137453.html