PHP在调用静态方法时使用变量

Dan*_*Dan 4 php methods static

我有三个类都有一个名为'create'的静态函数.我想根据表单的输出动态调用适当的函数,但是语法有点麻烦.无论如何要执行此操作?

$class = $_POST['class'];
$class::create();
Run Code Online (Sandbox Code Playgroud)

任何建议将不胜感激.

谢谢.

Pas*_*TIN 8

如果您使用的是PHP 5.2,则可以使用call_user_func(或call_user_func_array):

$className = 'A';

call_user_func(array($className, 'method'));

class A {
    public static function method() {
        echo 'Hello, A';
    }
}
Run Code Online (Sandbox Code Playgroud)

会得到你:

Hello, A
Run Code Online (Sandbox Code Playgroud)


您在问题中使用的语法只能在PHP> = 5.3时使用; 请参阅静态关键字的手册页,关于:

从PHP 5.3.0开始,可以使用变量引用该类.变量的值不能是关键字(例如self,parent和static).