使用PHP SplDoublyLinkedList引用

时间:2014-05-13 06:26:48

标签: php arrays reference spl

我试图修改我自己在linked list中的数组的值 听起来像是:

  $z = new SplDoublyLinkedList();

  $z->push(array('Hello', 0));
  $z->push(array('world', 4));

  $p = & $z->offsetGet(1);                // reference ?

  $p[0]='change';                         // indirection like ? 
  $p[1]=5;


  $q = &$z->offsetGet(1);                 // element of my array remains "world", 4

但它不起作用。 当然,如果我推class个对象,它就有效......

有没有办法让array()具有相同的行为? ... 显然,根据SplDoublyLinkedList声明,我不能...... :(

1 个答案:

答案 0 :(得分:0)

使用offsetSet()方法

  $z = new SplDoublyLinkedList();

  $z->push('Hello');
  $z->push('world');

  $z->offsetSet(0, 'change');
  $z->offsetSet(1, 5);


  $q = $z->offsetGet(1);

我不认为这个类接受数组作为推送的输入类型。