我正在修改我的PHP框架并尝试找出一种更简单的方法来处理不同的请求类型。
目前我在控制器方法中有这个块
$methodHandler = self::getMethodHandler(__FUNCTION__);
$this->$methodHandler();
getMethodHandler在哪里
protected static function getMethodHandler($function) {
return $function."_".ucwords(strtolower(Request::getMethod()));
}
理想情况下,我想将这两行减少为一行,但PHP没有它
$this->self::getMethodHandler(__FUNCTION__)();
无论如何我能做到这一点?
答案 0 :(得分:1)
这应该有效:
$this->{self::getMethodHandler(__FUNCTION__)}();
这将评估self::getMethodHandler(__FUNCTION__)
并将结果调用为$this
的方法。