1

PHP フレームワークを変更して、さまざまな要求タイプを処理する簡単な方法を見つけようとしています。

現在、コントローラーメソッドにこのブロックがあります

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

getMethodHandler の場所

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

理想的には、その2行を1行に減らしたいのですが、PHPにはそれがありません

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

とにかく私はこれを行うことができますか?

4

1 に答える 1

1

これはうまくいくはずです:

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

それは評価されself::getMethodHandler(__FUNCTION__)、結果を のメソッドとして呼び出します$this

于 2012-11-13T20:14:14.547 に答える