有没有办法通过变量调用函数?
例如,我想调用函数Login().我可以这样做:
$varFunction = "Login"; //to call the function
Run Code Online (Sandbox Code Playgroud)
我可以使用$ varFunction吗?
maa*_*nba 26
是的你可以:
$varFunction();
Run Code Online (Sandbox Code Playgroud)
要么:
call_user_func($varFunction);
Run Code Online (Sandbox Code Playgroud)
确保验证$ varFunction是否存在恶意输入.
编辑:
对于您的模块,请考虑这样的事情(取决于您的实际需求):
abstract class ModuleBase {
public function main() {
echo 'main on base';
}
}
class ModuleA extends ModuleBase {
public function main() {
parent::main();
echo 'a';
}
}
class ModuleB extends ModuleBase {
public function main() {
parent::main();
echo 'b';
}
}
function runModuleMain(ModuleBase $module) {
$module->main();
}
Run Code Online (Sandbox Code Playgroud)
然后使用正确的模块实例调用runModuleMain().
您可以使用...
$varFunction = "Login";
$varFunction();
Run Code Online (Sandbox Code Playgroud)
......不言而喻,确保变量是可信的.