2015-04-24 62 views
0

我正在使用php,我遇到了困境。我需要我的雙向鏈表可以訪問交叉函數。我爲了解決這個問題一直在做的是在參數中明確地傳遞變量的地址。這種方法是否有效?它看起來類似於這樣:PHP訪問SplDoublyLinkedList交叉函數

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

在旁註:是的,你可以做到這一點。另外,通過引用確實如上所述地工作,假設列表被正確初始化。