多数の function を持った class を作った。この function は、(微妙な圧縮記法で)1行程度の関数を定義している。その function をユーザに選択させようと一覧を得ようとしたがうまく行かなかった。そこで、仕方なく html の form を使って radio から選択させる。
しかし、そのまま実行したのでは危険があるので、少なくともそれが実行出来るのか確かめてみようと思う。function_exist() だろうと検討をつけてその周辺をテストするもうまく行かない。ようやく見つけたサイトによって method_exist() で実行できることがわかったのでメモ。
スポンサードリンク
周辺の関数
- call_user_func_array — パラメータの配列を指定してユーザ関数をコールする
- call_user_func — 最初の引数で指定したユーザ関数をコールする
- create_function — 匿名関数 (ラムダ形式) を作成する
- forward_static_call_array — 静的メソッドをコールし、引数を配列で渡す
- forward_static_call — 静的メソッドをコールする
- func_get_arg — 引数のリストから要素をひとつ返す
- func_get_args — 関数の引数リストを配列として返す
- func_num_args — 関数に渡された引数の数を返す
- function_exists — 指定した関数が定義されている場合に TRUE を返す
- get_defined_functions — 定義済みの全ての関数を配列で返す
- register_shutdown_function — シャットダウン時に実行する関数を登録する
- register_tick_function — 各 tick で実行する関数を登録する
- unregister_tick_function — 各 tick の実行用の関数の登録を解除する
テストスクリプト
目的・条件
入力された文字列の関数がクラス内に存在するかを確かめ、存在するなら実行(した結果)、不存在なら none を返す。(CakePHP 1.3)
つまり、 $this->WeightsAndMeasures->{$input_string}(ARGS) が実行出来るかテストする。
class WeightsAndMeasuresComponent extends Object{ function mile_km($km){ ・・・・ } }
テストスクリプト
$f = 'mile_km'; // 入力されたと仮定して $ret = method_exists($this->WeightsAndMeasures, $f) ? $this->WeightsAndMeasures->{$f}(100) : 'none'; debug($ret);
参考文献
- PHP: function_exists – Manual :
PHP: function_exists - ManualPHP is a popular general-purpose scripting language that powers everything from your blog to the most popular websites i... - PHP: method_exists – Manual :
PHP: method_exists - ManualPHP is a popular general-purpose scripting language that powers everything from your blog to the most popular websites i... - PHP: get_defined_functions – Manual :
PHP: get_defined_functions - ManualPHP is a popular general-purpose scripting language that powers everything from your blog to the most popular websites i... - PHP: call_user_func – Manual :
PHP: call_user_func - ManualPHP is a popular general-purpose scripting language that powers everything from your blog to the most popular websites i... - PHP: call_user_func_array – Manual :
PHP: call_user_func_array - ManualPHP is a popular general-purpose scripting language that powers everything from your blog to the most popular websites i... - PHP: 関数処理 関数 – Manual :
PHP: 関数処理 関数 - ManualPHP is a popular general-purpose scripting language that powers everything from your blog to the most popular websites i... - PHPで関数・メソッドの存在を調べる関数 – (DxD)∞ :
WordPress › エラー
コメント