0

以下のようなデータを定義しました。

define('INDEX_CONTROLLER', 'test');

そして、私はそれを以下のように使いたい..

require_once 'controllers/' . INDEX_CONTROLLER . '.php';
$this->controller = new INDEX_CONTROLLER();

以下のエラーが表示されます..

致命的なエラー: クラス 'INDEX_CONTROLLER' が /var/www/own/boot.php の 13 行目に見つかりません

4

2 に答える 2

4

変数と等しく設定してから呼び出すことができます。

$controller = INDEX_CONTROLLER;
$this->controller = new $controller();
于 2013-06-21T19:16:37.013 に答える
2

反射をより適切に使用する

DEFINE('INDEX_CONTROLLER', 'test');
$rc= new ReflectionClass(INDEX_CONTROLLER);
$this->controller = $rc->newInstance();

またはphp5.4+を使用する場合は1行で

$this->controller = (new ReflectionClass(INDEX_CONTROLLER))->newInstance();

リフレクションの詳細については、http: //php.net/manual/en/book.reflection.phpをご覧ください。

于 2013-06-21T19:21:35.367 に答える