私はphpクラスを持っていAssets
ます。中Assets
には、アセットを処理するさまざまなパブリック関数があります(キャッシング、ミニファイ、結合など)。パブリック関数の1つには、を実行するために必要な2次関数が含まれていますpreg_replace_callback()
。この内部関数は他のパブリック関数の1つにアクセスする必要がありますが、他の関数を呼び出すのに問題があります。
設定は次のとおりです。
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