メソッド名を可変にする

渡された変数によってメソッド名を書き換えて実行したい場合、例えば、

  • findItems()
  • findHogeItems()
  • findGehoItems()

…という三種類のメソッドを使い分けたいときは、以下の様な方法でメソッド名を可変にして実行することができる。

function executeByStatus($status='') {
    $method_name = ‘find’ . $status . ‘Items’;
    return $this->ModelName->$method_name();
}

↑$statusに'Hoge'を渡せばfindHogeItems()を、'Geho'を渡せばfindGehoItems()を、何も渡さなければfindItems()を、それぞれ実行する。