[PHP-users 15853]Re: クラスメソッドと可変関数、コールバック(call_user_func)について
KOYAMA Tetsuji
koyama @ hoge.org
2003年 6月 11日 (水) 18:28:35 JST
小山です。
At Wed, 11 Jun 2003 17:48:53 +0900,
坂本さん wrote:
> クラスメソッドと可変関数ではまってしまっています。
> 以下に示すようなコードを書いてみたのですが、エラーが発生してしまいます。
>
> <?php
> class hoge {
> function my_func1($func) {
> $func("bohe");
> }
> function my_func_core($str) {
> print("$str<br>\n");
> }
> function my_func_set() {
> $this->my_func1("my_func_core");
> }
> }
> $obj_hoge = new hoge;
> $obj_hoge->my_func_set();
> ?>
>
> エラーメッセージは次に示すとおりです。
> Fatal error: Call to undefined function: my_func_core() in
> /home/c-hino/public_html/in_vitro/test_utils/method.php on line 4
関数を動的に呼び出すのに、$func() という表記をするのがそもそも間違っ
てます。
> function my_func1($func) {
> $func("bohe");
> }
ここは、インスタンスメソッドとして呼び出すなら
call_user_func(array($this, $func));
ですし、クラスメソッドとして呼び出すなら
call_user_func(array('hoge', $func));
としないと。
--
小山 哲志@ビート・クラフト
koyama @ beatcraft.com
koyama @ hoge.org
PHP-users メーリングリストの案内