PHP 中的动态静态方法调用?

2022-08-30 08:57:25

请有PHP经验的人帮忙做以下事情。在我的代码中的某个地方,我对非实例化类中的公共静态方法进行了调用:

$result = myClassName::myFunctionName();

但是,我希望有许多这样的类,并根据用户的语言动态确定正确的类名。换句话说,我有:

$language = 'EN';

...我需要做这样的事情:

$result = myClassName_EN::myFunctionName();

我知道我可以将语言作为参数传递给函数,并在一个公共类中处理它,但由于各种原因,我更喜欢不同的解决方案。

这有什么意义吗,任何人?谢谢。


答案 1

使用call_user_func函数:

http://php.net/manual/en/function.call-user-func.php

例:

call_user_func('myClassName_' . $language . '::myFunctionName');

答案 2

我认为你可以做到:

$classname = 'myClassName_' . $language;
$result = $classname::myFunctionName();

这称为变量函数


推荐