我有一个 php 类Assets
。其中Assets
有各种处理资产的公共功能(缓存、缩小、组合......)。其中一个公共功能包含执行preg_replace_callback()
. 这个内部函数需要访问其他公共函数之一,但我无法调用其他函数。
这是设置:
class Assets
{
public function img($file)
{
$image['location'] = $this->image_dir.$file;
$image['content'] = file_get_contents($image['location']);
$image['hash'] = md5($image['content']);
$image['fileInfo'] = pathinfo($image['location']);
return $this->cache('img',$image);
}
public function css($content)
{
. . .
function parseCSS($matched){
return $this->img($matched); // THIS LINE NEEDS TO REFERENCE function img()
}
$mend = preg_replace_callback(
'#\<parse\>(.+?)\<\/parse\>#i',
'parseCSS',
$this->combined_css
);
. . .
}
}
这是我尝试过的:
$this->img($matched)
错误:不在对象上下文中使用 $this - 指
$this->
内部parseCSS()
Assets::img($matched)
错误:不在对象上下文中使用 $this - 指
$this->
内部img()
那么,如何$this
从内部函数中访问公共函数呢?