雑念ベースは http://blog.yoshitomo.org/ に移転しました。ここはリンクや画像などのために残っているのみで、更新はされません。

« メールの信憑性 | メイン | 最悪の誕生日 »

PHP で、クラス内関数をコールバック関数に使うには [コンピューター]

 覚書です。

 PHP はコールバック関数という概念があります。よく使われるのは、array_map のような関数です。この関数は、配列の各要素にコールバック関数を適用します。

 第一引数にコールバック関数の名前を文字列として入れてやるわけですが、OOP(オブジェクト指向プログラミング)の場合はこの方法が使えません。クラスインスタンスが $obj だとすると、$obj->func() のようにする必要があります。インスタンスも含めた形で名前を渡す方法がずっとわからないままでしたが、先日 Koders というソースコード検索エンジンでやり方を見つけることができました。

 そのやり方ですが、文字列ではなく配列を使います。

array_map( array( $obj, 'func' ), $array);

 PHP4 で動くことを確認しました。

コメント

ありがとう! このトピックのおかげでたすかりました。

コメントを投稿