PHP:链接列表实现问题与对象的引用?

时间:2012-01-17 15:07:04

标签: php

我正在创建一个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;
 }

1 个答案:

答案 0 :(得分:2)

在PHP中,如果每个节点都是一个对象,&next是该节点的对象,则不需要为链表使用引用赋值(别名/ first) - 也是。

请参阅Objects and References in the PHP Manual了解详细信息。