我有两个独立的对象,主要和“孩子”。它实际上不是真正的子对象,因为我通过构造函数将整个父对象添加到子对象中。
像这样:
class core
{
public function __get($class)
{
$this->load($class);
}
public function load($class, $file = null, $lib = true)
{
if($file == null)
$file = $class;
if($lib == true)
include(LIBPATH.$file.PHP);
else
include(SYSPATH.$file.PHP);
$this->$class = new $class($this);
}
}
和“孩子”:
class Child implements myStruct
{
public function __construct($obj)
{
$this->obj =& $obj;
}
}
这是否像我想的那样难看,或者这个解决方案是否可以接受?
答案 0 :(得分:3)
这绝对不是最理想的。第一:
$this->obj =& $obj;
没有必要这样做。从PHP 5开始,通过引用将对象引用到用户空间中。复制对象时,实际上是在复制引用。您可以在此处删除引用运算符:$this->obj = $obj
。
查看spl_autoload
自动加载类。它不等于你正在做的事情 - 你正在使用某种容器来保存对象的引用(每个类只有一个对象),但我怀疑它是你想要的。