如何使用定义的数据作为函数或类名?

时间:2013-06-21 19:14:29

标签: php oop

我定义了如下数据。

define('INDEX_CONTROLLER', 'test');

我想在下面使用它。

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

我收到以下错误..

  

致命错误:未找到“INDEX_CONTROLLER”类   第13行的/var/www/own/boot.php

2 个答案:

答案 0 :(得分:4)

您可以将其设置为等于变量,然后调用它:

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

答案 1 :(得分: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