我正在使用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?
}
}
答案 0 :(得分:0)
旁注:是的,你可以做到这一点。假设列表已正确初始化,通过引用传递确实如上所述工作。