Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Iteratory z SPL a pętle
erix
post
Post #1





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Czy jest możliwość iterowania po interfejsach Traversable/Iterator za pomocą innej pętli niż foreach" title="Zobacz w manualu PHP" target="_manual?

Np. ArrayIterator/ArrayObject za pomocą konstrukcji:
  1. <?php
  2. while(list(,$v) = each($iteratorHandle)){
  3. ?>


Ta mi nie działa?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
erix
post
Post #2





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Hmm, dziwna sprawa nieco...

Wynalazłem gdzieś taki listing (Countable nie ma tu żadnego znaczenia, po prostu potrzebny jest do mojej zabawki (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) ):
  1. <?php
  2. class x implements Iterator, Countable {
  3.    private $position = 0;
  4.    private $array = array(
  5.        "firstelement",
  6.        "secondelement",
  7.        "lastelement",
  8.    );
  9.  
  10.    public function __construct() {
  11.        $this->position = 0;
  12.    }
  13.  
  14.    function rewind() {
  15.        $this->position = 0;
  16.    }
  17.  
  18.    function current() {
  19.        return $this->array[$this->position];
  20.    }
  21.  
  22.    function key() {
  23.        return $this->position;
  24.    }
  25.  
  26.    function next() {
  27.        ++$this->position;
  28.    }
  29.  
  30.    function valid() {
  31.        return isset($this->array[$this->position]);
  32.  
  33.    }
  34.  
  35. function count(){
  36. return 6;
  37. }
  38. }
  39.  
  40. $x = new x;
  41. ?>


Wczoraj podczas moich prób next" title="Zobacz w manualu PHP" target="_manual zwracał wartość wg interfejsu Iterator, dzisiaj się zachowuje jak each" title="Zobacz w manualu PHP" target="_manual - iteruje po własnościach klasy... O.o

Na tym samym hoście, ten sam interpreter... Zupełny zonk...
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 17.10.2025 - 14:48