是否有可能從調用類函數是這樣的:PHP中的OOP:從一個變量的類函數?
$class = new class;
$function_name = "do_the_thing";
$req = $class->$function_name();
東西類似的解決方案,這似乎並沒有工作?
是否有可能從調用類函數是這樣的:PHP中的OOP:從一個變量的類函數?
$class = new class;
$function_name = "do_the_thing";
$req = $class->$function_name();
東西類似的解決方案,這似乎並沒有工作?
是的,這是可能的,是知道的變量函數,有look at this.
例從PHP的官方網站:
<?php
class Foo
{
function Variable()
{
$name = 'Bar';
$this->$name(); // This calls the Bar() method
}
function Bar()
{
echo "This is Bar";
}
}
$foo = new Foo();
$funcname = "Variable";
$foo->$funcname(); // This calls $foo->Variable()
?>
在你的情況,確保函數do_the_thing
存在。另外請注意,您在存儲函數的返回值:
$req = $class->$function_name();
試試,看看哪些變量$req
包含。例如,這應該給你的信息:
print_r($req); // or simple echo as per return value of your function
注:
變量函數不能用於語言結構,如echo(), print(), unset(), isset(), empty(), include(), require()
之類的工作。利用包裝函數將任何這些結構用作可變函數。
我最簡單的例子是:
$class = new class;
$function_name = "do_the_thing";
$req = $class->${$function_name}();
$ {$函數名}是招
用靜態方法也可以工作:
$req = $class::{$function_name}();
的可能重複的http:/ /stackoverflow.com/questions/936875/how-would-i-call-a-method-from-a-class-with--variable – outis 2010-04-17 06:49:22