假设您有一个树结构如下:
a [Level 0]
/ | \
b c d [Level 1]
/ \ |
e f g [Level 2]
| / \
h i j [Level 3]
Run Code Online (Sandbox Code Playgroud)
我在这样的数据库中表示了这个:
node parent
------------
a null
b a
c a
d a
[...]
h f
i g
Run Code Online (Sandbox Code Playgroud)
我想编写一个函数,给定一个级别,它将返回该级别的所有节点及其父级.
例如:
f(0) => { a }
f(1) => { a, b, c, d }
f(2) => { a, b, c, d, e, f, g }
Run Code Online (Sandbox Code Playgroud)
有什么想法吗?
我有一个标准链接,例如:
<a href="/test">Test</a>
Run Code Online (Sandbox Code Playgroud)
在 Chrome 中,单击并拖动此链接将导致光标变为拖动地球仪的箭头。地球仪可以放在 URL 或书签栏上。
我正在尝试用 JavaScript 实现拖放文件系统界面。所有文件和文件夹都用“a”标签标记。当我单击并拖动一个时,地球图标会出现并中断 JavaScript 事件(在本例中为 JQuery 的 mousemove)。
关于如何阻止 Chrome 将拖动的链接转换为地球的任何想法?
编辑:使用一些放置良好的 event.preventDefault() 实际上确实解决了问题。
我试图将抽象父类中的属性与子类中的相同属性合并。代码看起来有点像这样(除了在我的实现中,有问题的属性是一个数组,而不是一个整数):
abstract class A {
public $foo = 1;
function __construct() {
echo parent::$foo + $this->foo; # parent::$foo NOT correct
}
}
class B extends A {
public $foo = 2;
}
$obj = new B(); # Ideally should output 3
Run Code Online (Sandbox Code Playgroud)
现在我意识到构造函数中的 parent::$foo 在这里不会按预期工作,但是如何在不将值硬编码到构造函数中或在父类中创建附加属性的情况下合并属性值?