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');