структуры данных — PHP получает доступ к перекрестной функции SplDoublyLinkedList

Я работаю с 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

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]