0

それを理解しようとしている:

$utils = $this->load( 'helper', 'Utils' );
$action = $utils->getAction() . '()';
$this->${action};
} 
public function Name() { .... }

$action$_GETまたは$_POSTアクションキーの値であるはずです。

$actionを使用してメソッドをロードするにはどうすればよい$this->$action()ですか?

ありがとう!

4

2 に答える 2

2

()を文字列に追加するのではなく、呼び出しに追加します。

そのようです:

$utils = $this->load( 'helper', 'Utils' );
$action = $utils->getAction();
$this->$action();

それらは「変数関数」と呼ばれます - http://php.net/manual/en/functions.variable-functions.php

于 2013-01-07T04:52:46.133 に答える
1

$_GETまたは$_POST の場合は、$_REQUEST を使用できます。

したがって、あなたの場合は次のようになります。

$action = $_REQUEST['action'];
$this->$action();

しかし、あなたが提供したコードの解決策は、次のことだけです:

$utils = $this->load( 'helper', 'Utils' );
$action = $utils->getAction();
$this->$action();
于 2013-01-07T04:52:27.480 に答える