人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

Pear::QuickForm

applyFilter でユーザ関数を指定することが出来るそうなのですが、

function customfiler($var){
return 処理
}
$form->applyFilter('__ALL__','customfiler');

としたのですが、適用されません。
どうすればいいのでしょうか?

●質問者: esecua
●カテゴリ:コンピュータ ウェブ制作
✍キーワード:Pear ユーザ 関数
○ 状態 :キャンセル
└ 回答数 : 1/1件

▽最新の回答へ

1 ● kn1967

どうすれば良いのかと問われれば・・・

ソースをさらけ出さない(出せない)のであれば

地道にデバッグするしかないのですけど?


(1)__ALL__ ではなくてフィルタ対象を1つに絞る

これでテストに集中しやすくなるはず。

1つの対象で動作確認が取れたら、ALLでも確認。

ALLでミスが出たらフィールドのどれが原因か1つ1つ対象を絞り込む。


(2)関数名を見直してみる。

customfiler は customfilter の誤記だと思われるけれど

コピペで済むはずの関数名を書き間違うということは考えづらいので

これは本当に使っている関数名ではなく

質問用に考えた関数名ではないかと想像してみる・・・。

だとすれば、本当の関数名が既存関数や予約語などと

ダブっていたりする可能性が考えられるので、見直を。


(3)return に式を書いたりしない。

returnに式を書くのは良いのだけれども

$var = 処理;

デバッグ用ログ出力;

return ($var);

などとするのも簡単だからね・・・。


(補足)PEARのERRORログを見る。

実はこれで解決するのではないかと思ってたりするのだが・・・。

「適用されない」=「フィルタを通らなかったように元のまま」

になる状況を考えるとERRORに返ってきてると思うんですよね・・・。

まさか require_once 忘れてるものがあるなんて事は無いと思いたいが

これは蛇足ですね。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ