クラス( function )に関数を設定する機能が欲しいsetFunction
です。getFunction
後で、外部から呼び出すことができる関数 (with ) を取得したい(パラメーターを指定するなど)。これが私が試したことです:
class Test
{
var $function;
function setFunction($foo)
{
$this->function = $foo;
}
function getFunction()
{
return $this->function;
}
function foo1($a)
{
print "foo1: ".$a."\n";
}
function foo2($b)
{
print "foo2: ".$b."\n";
}
}
$oClass = new Test();
$oClass->setFunction($oClass->foo1);
$oClass->getFunction()('test'); # <--- line 32
期待される出力は
foo1: test
しかし、代わりにエラーが発生します:
PHP Parse error: syntax error, unexpected '(' in tester.php on line 32
これを解決する方法はありますか?以下にいくつかの制約を示します。
- これは、各関数の任意のパラメーターに対して機能する必要があります。
- 定義される関数は、常にクラス自体で指定されます (それが役立つ場合)。