開発畑トップ   »  PHP   »  関数に渡すパラメータを動的に変える方法

関数に渡すパラメータを動的に変える方法

2013年01月24日

Category:PHP

tag: PHP

phpで関数のパラメータを動的に渡したい場合のやり方


例えば、以下のarray_multisort関数のようなパラメータが複数あって、変動する場合。

array-multisort($ar1, $ar2, $ar3, ...);

で、なおかつ呼び出す側もパラメータの数が変動する場合、ユーザー関数ならcall_user_func_array関数を使えば解決するんだけど、上記の場合はそれも使えないので、以下のコードで対応してみた。

$params = array($ar1, $ar2, $ar3, ...);
$param = implode(",", $params);
$evalData = "array_multisort({$param});";
eval($evalData);

ようはevalを使って実行しているだけなんですけどね。

※evalは危険な言語構造なので使う時は気をつけましょう~

もっと簡単な方法ないのかな~

コメントをどうぞ!