0

我定义了如下数据..

define('INDEX_CONTROLLER', 'test');

我想像下面这样使用它..

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

我在下面收到错误..

致命错误:在第 13 行的 /var/www/own/boot.php 中找不到类 'INDEX_CONTROLLER'

4

2 回答 2

4

You can set it equal to a variable and then call it:

$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+,则在一行中

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

您可以在此处阅读有关反射的更多信息:http: //php.net/manual/en/book.reflection.php

于 2013-06-21T19:21:35.367 回答