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;
  }
}

関連記事

スポンサーリンク

cron実行時に『/bin/sh: 〜〜: command not found』と出てcronが実行されない場合

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

上に戻る