PHPでメソッドの呼び出しを動的に行う

コントローラへのルーティングなどコマンドパターンの実装で変数に応じて動的なメソッドの呼び出しをしたくなることがある。
そういう時に便利なPHPの可変関数。

文字列(変数の中身含む)をメソッドや関数名として扱える。※ユーザ入力値を使う場合はセキュリティには注意

class SaveDataClass{
  public function cmd_load(){
    // 処理
    echo __FUNCTION__.PHP_EOL;
  }
  public function cmd_save(){
    // 処理
    echo __FUNCTION__.PHP_EOL;
  }
}
$cmd_part = 'load';
$cmd_whole = 'cmd_save';
$obj = new SaveDataClass();

$obj->{"cmd_{$cmd_part}"}();// $obj->cmd_load();
$obj->$cmd_whole();// $obj->cmd_save();

カテゴリー: php

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です