动态调用 PHP 函数

php
2022-08-30 18:16:53

有没有办法通过变量调用函数?

例如,我想调用函数 Login()。我可以这样做吗:

$varFunction = "Login"; //to call the function

我可以使用$varFunction吗?


答案 1

是的,您可以:

$varFunction();

艺术

call_user_func($varFunction);

确保验证恶意输入$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();
}

然后使用正确的模块实例调用 runModuleMain()。


答案 2

您可以使用...

$varFunction = "Login";
$varFunction();

...不言而喻,要确保变量是可信的。


推荐