我可以使用函数作为函数的名称吗?

时间:2012-11-13 20:11:25

标签: php

我正在修改我的PHP框架并尝试找出一种更简单的方法来处理不同的请求类型。

目前我在控制器方法中有这个块

$methodHandler = self::getMethodHandler(__FUNCTION__);
$this->$methodHandler();

getMethodHandler在哪里

protected static function getMethodHandler($function) {
    return $function."_".ucwords(strtolower(Request::getMethod()));
}

理想情况下,我想将这两行减少为一行,但PHP没有它

$this->self::getMethodHandler(__FUNCTION__)();

无论如何我能做到这一点?

1 个答案:

答案 0 :(得分:1)

这应该有效:

$this->{self::getMethodHandler(__FUNCTION__)}();

这将评估self::getMethodHandler(__FUNCTION__)并将结果调用为$this的方法。