警告:preg_replace_callback()[function.preg-replace-callback]:需要参数2,'info',才能成为[...]中的有效回调
public function getDisplay(){
$info = array_merge($this->info,array());
return preg_replace_callback('!\{\{(\w+)\}\}!', 'info', $this->display);
}
Run Code Online (Sandbox Code Playgroud)
在"MyClass"的公共函数中,当我从另一个类移动到此类时停止工作.这是:
public function getEdit( $type){
$all_info = $this->info;
return preg_replace_callback('!\{\{(\w+)\}\}!', 'all_info', $edit_contents);
}
Run Code Online (Sandbox Code Playgroud)
两者都被清理干净了,现在我不能用以前的课程重新测试,因为它已经很久了.
我敢肯定,使用变量是不容许的,但它是工作,所以我无言以对.
当我这样做时,正如某些stackoverflow线程中所建议的那样,但显然它不是在对象中使用的:
public function getDisplay(){
$display_info = $this->info;
function display_info($matches) {
global $display_info;
return $display_info[$matches[1]];
}
return preg_replace_callback('!\{\{(\w+)\}\}!', 'display_info', $this->display);
}
Run Code Online (Sandbox Code Playgroud)
所以我需要一些爱和指导cuz php本周让我疯狂...
Tad*_*eck 11
您可以使用支持传递回调的方法之一,而不是使用匿名函数或更复杂的方法(请参阅回调文档):
实例化对象的方法作为包含索引0处的对象和索引1处的方法名称的数组传递.
要将当前对象的"info"方法作为回调传递,请执行以下操作:
array($this, 'info')
Run Code Online (Sandbox Code Playgroud)
并将其传递给您想要使用"info"方法作为其中一个对象内的其他方法的回调.