PHP gibi sahte-diziler nesneleri

3 Cevap php

3 Cevap

PHP yeni değişiklikler (sonraki, vb reset) standart bir dizi fonksiyonları kullanılarak manipüle ediliyor ArrayIterators formu önlemek.

This should be restored soon: http://news.php.net/php.internals/42015

Çalışması için bu almak için tek yolu, ayrı bir sınıfta kendi yineleyici tanımlayabiliriz, ve o yeni yineleyici yerine varsayılan birini kullanmak için ana sınıf anlatmaktır.

class MyIterator implements Iterator {
  public function key() {
    //
  }

  public function rewind() {
    //
  }

  // etc.

}

class MyMainClass implements IteratorAggregate {
  private $_data = array();

  // getIterator is required for the IteratorAggregate interface.
  public function getIterator() {
    return new MyIterator($this->_data);
  }

  // etc.

}

İhtiyacınız gibi Sonra kadar kontrole sahip olmalıdır. (Ve sınıfları bir dizi genelinde kendi Yineleyicim yeniden kullanabilirsiniz).

Hiçbir test yukarıdaki yapılabilir, ancak ilke doğru, ben inanıyorum.

Bu yardımcı olur umarım!

ArrayIterator aradığınız değil mi ne? Yoksa ne ulaşmak için çalışıyoruz ne portföyünde arayüzü gibi görünüyor ki, ArrayObject hakkında.