1

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

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

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

getMethodHandler 在哪里

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

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

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

无论如何我可以做到这一点?

4

1 回答 1

1

这应该有效:

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

这将评估self::getMethodHandler(__FUNCTION__)并调用结果作为$this.

于 2012-11-13T20:14:14.547 回答