我正在创建一个linklist类,并且对于对象的引用有些困惑。
根据我的理解默认对象是通过引用复制的。 $ Obj1 = $ Obj2。 $ Obj1是$ Obj2的别名。
有人可以指出在链接列表实现中哪一个是正确的。
$firstNode->next = $this->first;---> seems to be correct
or
$firstNode->next =& $this->first;
$this->first = $firstNode;-----> seems to be correct as $firstNode is an object
or
$this->first = & $firstNode;
代码:
class Node {
public $element;
public $next;
public function __construct($element){
$this->element = $element;
$this->next = NULL;
}
}
class Linklist {
private $first;
private $listSize;
public function __construct(){
$this->first = NULL;
$this->listSize = 0;
}
public function InsertToFirst($element){
$firstNode = new Node($element);
$firstNode->next = $this->first; // or $firstNode->next =& $this->first;
$this->first = $firstNode; // or $this->first = & $firstNode;
}
答案 0 :(得分:2)
在PHP中,如果每个节点都是一个对象,&
和next
是该节点的对象,则不需要为链表使用引用赋值(别名/ first
) - 也是。
请参阅Objects and References in the PHP Manual了解详细信息。