人に聞けない痔の悩み、これでスッキリ >>

class class_name
{
function sort_function($val1,$val2)
{ 並び替え関数 return 0or1or-1;}

function sousa()
{
$array=("山田","田中","砂糖");
uasort($array,$this->sort_function)
}
}

上のようなことをやろうとしているのですけれど
function sousa()を実行すると

---エラー----
Warning: uasort() [function.uasort]: Invalid comparison function. in XXXX.php on line XX
-------------

がでます。
クラス内関数を【並び替え用ユーザ定義関数】
として用いるにはどうしたらいいのでしょうか?
解決策をご存知の方がおられましたらご教授頂きたいです。
もちろん、関数をクラス内に配置しないか、
sousa関数内に並び替え関数を配置すれば正常に動作しますが
上のような配置で実行したいです。

よろしくお願いします。m(TT)m

このQ&Aに関連する最新のQ&A

A 回答 (1件)

これでしょうかね


http://php.s3.to/man/function.call-user-func.html
引用「この関数のパラメータfunctionに array($classname, $methodname)を指定することにより、 クラスメソッドも静的にコールすることができます。」

試してないけど、内部callなら$classnameを$thisにすればいけるんでは??

参考URL:http://php.s3.to/man/function.call-user-func.html
    • good
    • 0
この回答へのお礼

ありがとうございます^^
あの後、自己解決して
クラス名要れて作動させることができました♪

あと、$thisでも動作させることができました。
ありがとうございました^^

お礼日時:2007/08/03 17:00

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


人気Q&Aランキング