【PHP】PEAR Part2at PHP【PHP】PEAR Part2 - 暇つぶし2ch■コピペモード□スレを通常表示□オプションモード□このスレッドのURL■項目テキスト758:nobodyさん 07/03/01 12:37:31 >それにフレームワーク固有のコードを書いていたら汎用性が全く無くなってしまう。 フレームワークをなんだと思ってるんだ? 759:nobodyさん 07/03/01 15:51:00 DBからMDB2に移ろうとしているんですが、 MDB2って、なんかDBに比べて不便になってる 気がするんですが、気のせいでしょうか? insertやupdateの手順がまんどくさくなってるよな。。。 760:nobodyさん 07/03/08 12:27:01 Html_QuickFormでprocess()を2回使用しようとするとエラーになります。 Fatal error: Cannot redeclare callback1() (previously declared in c:\path\file.php:100) 以下のようにしたい場合はどうすればいいでしょうか? if($objForm->validate()){ $objForm->process('callback1'); $objForm->process('callback2'); } 761:nobodyさん 07/03/08 12:31:50 単にcallback1()を2回定義しちゃってるだけじゃないの? 762:760 07/03/08 14:00:23 >761 仰る通りでした。ありがとうございました。 補足としては、実はと言っては怒られそうではありますが、 クラス内にprocess()を呼び出すメソッドを作り、その中にコールバック関数を定義しておりました。 このような感じ。 class Form extends HTML_QuickForm{ function actProcess($callbackFuncName){ function callbackFunc1(){...} function callbackFunc2(){...} return $this->process($callbackFuncName, false); } } ですので、actProcess()を2回目に呼び出すと、 callbackFunc1(),callbackFunc2()がもう一度定義されエラーになっていた模様です。 調べたところ、コールバック関数をprocess()呼び出しのメソッド外に置き、 process()の第一引数をarray(&$this, 'callbackFuncName')のようにすると良い事が分かりました。 以下のような感じ。 class Form extends HTML_QuickForm{ function actProcess($callbackFuncName) { return $this->process(array(&$this, $callbackFuncName), false); } function callbackFunc1(){...} function callbackFunc2(){...} } 次ページ最新レス表示レスジャンプ類似スレ一覧スレッドの検索話題のニュースおまかせリストオプションしおりを挟むスレッドに書込スレッドの一覧暇つぶし2ch