PHP访问SplDoublyLinkedList交叉函数

时间:2015-04-24 19:30:09

标签: php data-structures doubly-linked-list

我正在使用php,我遇到了困境。我需要我的双向链表才能进行交叉功能。我一直在做的就是在参数中明确地传递变量的地址。这种方法是有效的解决方案吗?它看起来与此相似:

function foo(&$list){
    $list->push('a');
    $list->push('b');
    $list->push('c');
    $list->push('d');

    $list->setIteratorMode(SplDoublyLinkedList::IT_MODE_FIFO);
    for ($list->rewind(); $list->valid(); $list->next()) {
        echo $list->current()."\n";
    }
}

另外,在旁注中,我是否可以通过简单地执行以下操作将对象存储在链接列表中?

function foo(&$list){
    //assuming Pie is a class with a method get_pie_flavor()
    $myBar = new Pie('cherry');
    $list->push($myBar);

    $list->setIteratorMode(SplDoublyLinkedList::IT_MODE_FIFO);
    for ($list->rewind(); $list->valid(); $list->next()) {
        echo $list->current()->get_pie_flavor();
    //will this print 'cherry' assuming get_pie_flavor is written correctly?
  }
}

1 个答案:

答案 0 :(得分:0)

旁注:是的,你可以做到这一点。假设列表已正确初始化,通过引用传递确实如上所述工作。