create_functionでメソッドを使用する方法

create_functionの戻り値に関数を使用するには、そのまま関数名を書くだけで使用できます。
同クラス内のメソッドを使用するには$this->のような指定はできません。
使用する場合は クラス名:: のような指定をしますが、これだとクラス名が変わったときにメソッド内を変更する必要があります。
クラス名を得るget_class()を使用します。

class TestClass{
  function aaa($buff) {
    return preg_replace_callback("/…/",create_function('$matches','return '.get_class().'::bbb($matches[0]);'),$buff);
  }

  function bbb($str){
    …………
    return $str;
  }
}

スポンサーリンク

関連記事

スポンサーリンク

ディレクトリセパレータを短く定義する DIRECTORY_SEPARATOR

ホームページ製作・web系アプリ系の製作案件募集中です。

上に戻る