在大型 PHP 堆栈中通过引用访问类


Accessing a class by reference in a large PHP Stack

所以我有一个PHP堆栈,大致看起来像这样

Class Stack {
    public $name;
    public $parent;
    public $children = array();
    public function __construct($name, $parent = false) {
        $this->name = $name;
        $this->parent = $parent;
    }
    public function newChild($name) {
        $this->children[] = new Stack($name, $this);
    }
    public function &top() {
        if(is_object($this->parent))
            return $this->parent->top();
        return $this;
    }
}

因此,在这个堆栈的第 5 级左右,我想使用 top() 方法访问 0 级,因为我需要对其进行修改。所以我这样做了,但我所做的修改不适用于最终构建序列,因为它通过引用传递。我已经尝试了几个不同的想法,但我仍然无法让它正确通过。有什么想法吗?

编辑:我实际上想通了。我上面写的内容实际上完美地工作,我正在使用的堆栈变得有点大,并且在父 wasent 设置的过程中的某个地方,所以它并没有一直上升堆栈。看看这实际上是什么项目。看看 http://github.com/EvolutionSDK/lhtml(逻辑 HTML...提供从基于 HTML 的页面对 PHP 的有限访问。基本上是MVC架构框架中的C和V。

基本上在我的大型PHP堆栈中,我有一个未设置的"父"变量。这阻止了 top() 函数访问堆栈的顶部。所以它只上升了一半。

当我弄清楚并将孩子重新连接到它的父母时,它工作得很好。由于类总是通过引用传递的。

很抱歉我花了多长时间才发布这个。