变量为静态函数

时间:2014-12-11 19:17:00

标签: php

我有一节课:

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

我想用变量(http://php.net/manual/en/functions.variable-functions.php)调用静态函数get():

$section = 'Sections::get';
$section('body');

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

是否可以这种方式调用静态函数?

谢谢!

3 个答案:

答案 0 :(得分:4)

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

$class = 'Sections';
$method = 'get';

现在你可以这样称呼它:

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

答案 1 :(得分:0)

尝试使用call_user_func执行此操作:

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

或者:

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

答案 2 :(得分:0)

我已经在班级以外的函数的帮助下解决了它:

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

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

现在我能做到:

$section = 'section';
$section('body');
相关问题