У меня есть собственный объект Tree, реализованный на PHP. Скажем, у нас есть дерево вроде:
Root
|_ Folder 1
|_ Folder 2
|_ Subfolder 1
Я могу получить доступ к Subfolder 1
так:
$sf1 = $Tree->NavigateTo("Folder 2/Subfolder 1")
И $sf1
будет содержать узел Subfolder 1
. Я хочу реализовать метод GetParentNode()
, чтобы
$parent = $sf1->GetParentNode() // Equivalent to Folder 2
Это определение дерева:
class JaxpTree
{
/**
* @var JaxpTree|JaxpTreeNode Array of Tree nodes.
* @access public
*/
public $Nodes;
/**
* @var JaxpList Array of Tree items.
* @access public
*/
public $ItemList;
}
Он работает путем вложения объектов Tree, поэтому к подпапке 1 можно также получить доступ, например:
$Tree->Nodes["Folder 2"]->Nodes["Subfolder 1"]
, который будет объектом TreeNode:
/**
* Represents a Tree node.
*
* @package Jaxp.Trees
* @subpackage TreeNode
* @since 1.0
*/
class JaxpTreeNode
{
/**
* @var int Node id.
* @access public
*/
public $Id;
/**
* @var JaxpTreeNodeAttributes Contains the node's attributes.
* @access public
*/
public $Attributes;
}
Как я могу реализовать здесь доступ к родительскому узлу?
решаемые
Решение состоит в том, чтобы добавить свойство Parent, которое содержит ссылку на родительский узел.
Спасибо!