我有一个用 PHP 实现的自己的 Tree 对象。假设我们有一棵树:
根 |_ 文件夹 1 |_ 文件夹 2 |_ 子文件夹 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 属性。谢谢!