【发布时间】:2014-03-04 11:55:47
【问题描述】:
我正在构建一个框架。我在加载多个控制器时遇到问题,因为它们扩展了一个基本控制器,其中实例更改为最后加载的控制器选项。如何仅影响当前正在使用的控制器类的扩展基本控制器,而不影响基本控制器的所有实例?
class loader
{
private static $_inst;
public function __construct($class)
{
self::$_inst = $class;
}
}
abstract class base_controller
{
protected $load;
public function __construct()
{
$this->load = new loader($this);
}
}
class controller1 extends base_controller {}
class controller2 extends base_controller {}
当第一个控制器加载时,它会在加载器中设置实例。但是当您加载第二个控制器时,它会将控制器 1 的加载器对象静态 $_inst 设置为控制器 2 的实例。有什么建议吗?
【问题讨论】:
-
您正试图在第 525 行取消引用空指针。
-
您在基类中使用静态属性吗?