Php 变量作为静态函数

Php 变量作为静态函数,php,Php,我有一节课: class Sections { public static function get($name) { // } } 我想用一个变量()从中调用静态函数get(): 但它给了我一个致命的错误:调用未定义的函数节::get() 可以用这种方式调用静态函数吗 谢谢 尝试使用call\u user\u func执行此操作: $section = array('Sections', 'get'); call_user_func($section, 'bo

我有一节课:

class Sections {
    public static function get($name) {
        //
    }
}
我想用一个变量()从中调用静态函数get():

但它给了我一个致命的错误:调用未定义的函数节::get()

可以用这种方式调用静态函数吗


谢谢

尝试使用
call\u user\u func
执行此操作:

$section = array('Sections', 'get');
call_user_func($section, 'body');
或:


您需要将类与方法分开存储:

$class = 'Sections';
$method = 'get';
现在你可以这样称呼它:

$class::$method('body');

我通过一个课外函数解决了这个问题:

class Sections {
    public static function get($name) {
        //
    }
}

function section($name) {
    Sections::get($name);
}
现在我可以做:

$section = 'section';
$section('body');

我发现您的解决方案存在一个问题,即在stacktraces中,您只能看到
调用用户函数()
,而不能看到
节::get()
,这使得跟踪不值得调试。这就是我尽量避免调用用户函数的原因。。
class Sections {
    public static function get($name) {
        //
    }
}

function section($name) {
    Sections::get($name);
}
$section = 'section';
$section('body');