call_user_func_arrayの挙動がPHP5.3で変わった件。
PHPで行こう!
に関連する記事です。
PHPの5.2から5.3へアップし、テストを実施していたところ、
Warning: Parameter 1 to API::yuta() expected to be a reference, value given in XXXX
というエラーが発生した。
調べてみると、参照渡しとか、値渡しというよく分からない問題に直面した。
問題の部分は以下。
$stmt = call_user_func_array(array(&$this, "yuta"), $args);
試行錯誤の末、
$stmt = call_user_func_array(array(&$this, "yuta"), &$args);
とすることでエラーを回避、関数の実行となったので報告します。
でもこのcall_user_func_arrayはいろんなところで使っているので、全部に修正を実施するかは今後の問題となります。
ハマリました。。。
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
ホームページ制作・システム構築・DB設計
●ユタデザイン
●住所:〒135-0062
東京都江東区東雲2-7-5-2105
ユタデザイン
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+