重複の可能性:
PHP 静的メソッドを呼び出すときに変数を使用する
静的関数で変数を使用しようとすると、ここでいくつかの異なる投稿 (IE PHP Using a variable when calling a static method ) を読みましたが、call_user_func_array() 関数を動作させることができないようです。クラス名で変数を直接呼び出すことができた場合と同じです。
PHP >= 5.3.0 メソッド:
$data = $factory_model::by_array(array(
$form_fields['name_field'] => $value
));
PHP < 5.3.0 方法:
$data = call_user_func_array(array($factory_model, 'by_array'), array(
$form_fields['name_field'] => $value
));
これは私が継承したコードなので、モデルをそれほど変更することはできませんが、次の出力が得られるはずです。
initiative_forecast_type Object
(
[id:initiative_forecast_type:private] => 0
[forecast_type:initiative_forecast_type:private] => TRTR
[tstamp] => 2012-06-11 12:52:07
)
標準のPHP 5.3メソッドを使用して行うこと(私のユーザー入力/値は「TRTR」でした)
しかし、call_user_func_array メソッドを使用すると、次のようになります。
initiative_forecast_type Object
(
[id:initiative_forecast_type:private] => 0
[forecast_type:initiative_forecast_type:private] =>
[tstamp] => 2012-06-11 12:52:07
)
したがって、「forecast_type」フィールドは設定されていません。ここにモデルをアップロードしました - http://pastebin.ca/2160201
参考までに - $factory_model = Initiative_forecast_type_factory
2 call_user_func_array() 関数は 5.3.0 メソッドと同じように機能するはずだと思っていましたが、そうではないようです - 誰か私を正しい方向に向けることができますか?
ありがとう!キリスト教徒