我怎麼會做這樣的事情:用PHP調用對象上的更改函數名稱:如何?
class Test
{
public function test($methodName) {
$this->$methodName;
}
private function a() {
echo("a");
}
private function b() {
echo("b");
}
}
$testObj = new Test();
$testObj->test("a()");
$testObj->test("b()");
也許我應該只是傳遞一個參數「類型」和使用「IF語句」,但我只是好奇! :)
而如果「動態函數名稱」有一個或多個參數呢?
更新:謝謝大家! :)
更新#2 - 答:
class Test
{
public function testOut($methodName) {
$this->$methodName();
}
private function a() {
echo("a");
}
private function b() {
echo("b");
}
}
$testObj = new Test();
$testObj->testOut("a");
$testObj->testOut("b");
與類的問題是,有一個名爲「test」(同一個類名)方法......我改變了它它的工作。
其實它給了我一個錯誤: 方法名稱必須是一個字符串.... :( – mrmuggles 2009-06-19 03:23:33
方法名是「構造」,因爲它是相同的名稱班,所以這就是爲什麼它沒有工作,我認爲。我用你的代碼發佈了一個更新,只改變了「testOut」的測試方法 – mrmuggles 2009-06-19 03:31:24
UR正確,自從我使用CPP,C#和其他OOP語言以來沒有__construct – 2009-06-19 04:00:06