Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Iteratory, ?
maniekl2
post
Post #1





Grupa: Zarejestrowani
Postów: 162
Pomógł: 29
Dołączył: 6.04.2008

Ostrzeżenie: (0%)
-----


Ostatnio zagłębiłem się w temat iteratorów, jednak nie jestem do końca pewien czy dobrze zrozumiałem. Wszędzie są typy iteratorów, a nigdzie nie mogę znaleźć klarownego wytłumaczenia co to w ogóle jest i do czego służy.
Z tego co zrozumiałem to iterator to:
obiekt który ma dostęp do innego obiektu i...
Właśnie co on robi?
Jak przeglądałem różne typy to wywnioskowałem że pojawia się zawsze przy jakiś listach, np. listy plików, lista danych pobranych z bazy itp. (wszystko co robi się z pomocą pętli)
Czy te całe iteratoy to właśnie to pobieranie różnych elementów z obiektu do którego ma dostęp iterator i wyświetlanie jako lista?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
maniekl2
post
Post #2





Grupa: Zarejestrowani
Postów: 162
Pomógł: 29
Dołączył: 6.04.2008

Ostrzeżenie: (0%)
-----


Stworzyłem prosty kod obliczający silnie jako przykład iteratorów i mam pytanie czy dobrze to napisałem?
  1. <?php
  2. class test implements Iterator
  3. {
  4. public $valid=true;
  5. public $silnia;
  6. public $key=1;
  7. public $wynik=1;
  8.  
  9. public function __construct($silnia)
  10. {
  11. $this -> silnia = $silnia;
  12. }
  13. public function rewind()
  14. {
  15. //wiem że to służy do powrotu do 1 elementu ale nie wiem jak tego użyć
  16. }
  17. public function current()
  18. {
  19. return $this ->wynik;
  20. }
  21. public function key()
  22. {
  23. return $this ->key;
  24. }
  25. public function next()
  26. {
  27. if($this->key < $this-> silnia)
  28. {
  29. $this -> key++;
  30. $this -> wynik = $this -> wynik * $this -> key;
  31.  
  32. } else{
  33. $this -> valid = false;
  34. }
  35.  
  36. }
  37. public function valid()
  38. {
  39. return $this -> valid;
  40. }
  41.  
  42. }
  43.  
  44. $myiterator = new test(7);
  45. echo 'Działania:';
  46. while($myiterator -> valid()){
  47. echo $myiterator -> current();
  48. $myiterator -> next();
  49. }
  50. echo 'Wynik: '.$myiterator -> current().'';
  51. ?>
  52.  

Go to the top of the page
+Quote Post
mike
post
Post #3





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

Ostrzeżenie: (0%)
-----


Cytat(maniekl2 @ 16.03.2010, 00:34:45 ) *
Stworzyłem prosty kod obliczający silnie jako przykład iteratorów i mam pytanie czy dobrze to napisałem?
Bez czytania dalszej treści już Ci mogę powiedzieć, że źle.
Iterator to wzorzec zachowania polegający na sekwencyjnym dostępie do kolekcji. A u Ciebie żadnej kolekcji nie ma, jest to złe użycie wzorca.

Równie dobrze możesz końcówką młotka wkręcać wkręty. Też się może uda. Ale nie zdziw się jak ktoś popuka Ci się w głowę (IMG:style_emoticons/default/tongue.gif)
Go to the top of the page
+Quote Post
zegarek84
post
Post #4





Grupa: Zarejestrowani
Postów: 1 332
Pomógł: 294
Dołączył: 12.10.2008
Skąd: Olkusz

Ostrzeżenie: (0%)
-----


ok ok (IMG:style_emoticons/default/winksmiley.jpg) , ale jak na początek...
Cytat(mike @ 16.03.2010, 08:44:54 ) *
Równie dobrze możesz końcówką młotka wkręcać wkręty. Też się może uda. Ale nie zdziw się jak ktoś popuka Ci się w głowę (IMG:style_emoticons/default/tongue.gif)

i tu nie mogę się powstrzymać - skoro używacie takich powiedzeń to ja z życia wzięty przykład - akurat na budowie do wkręcania wkrętów do kołków rozporowych 99% osób używa młotków a nie wkrętarek (IMG:style_emoticons/default/winksmiley.jpg) - jeden raz pac i wkręt wkręcony (IMG:style_emoticons/default/winksmiley.jpg) (tu się nikt nie "bawi" a kołek trzyma mocno)... taka analogia ale jak na samo pierwsze użycie moim zdaniem powyższe może być... znając podstawową zasadę powinien szybko załapać jak chodzić po tablicach, odpowiednio dając warunki po obiektach czy "nietypowo" po drzewie DOM itp. itd....
Go to the top of the page
+Quote Post
mike
post
Post #5





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

Ostrzeżenie: (0%)
-----


Cytat(zegarek84 @ 16.03.2010, 11:21:15 ) *
ok ok (IMG:style_emoticons/default/winksmiley.jpg) , ale jak na początek...
Jest źle przede wszystkim dlatego, że to początek!
Nie namawiaj judzi do partactwa bo się przyzwyczają.
Go to the top of the page
+Quote Post

Posty w temacie
- maniekl2   Iteratory   15.03.2010, 19:04:54
- - wookieb   Iterator jest najczęśćiej używany w pętlach. Jest ...   15.03.2010, 19:12:18
- - batman   Iteratory stanowią specjalny typ, który umożliwia ...   15.03.2010, 21:31:41
- - thek   To ja odpowiem może w sposób możliwie najbadziej l...   15.03.2010, 21:38:52
- - maniekl2   Coś mi świtało i chyba już rozumiem. Dzięki. Jedna...   15.03.2010, 22:26:03
- - wookieb   Oczywiście wszystko zależy do czego ich używasz. P...   15.03.2010, 22:51:05
- - thek   Wookieb ma rację. Do większości przypadków tablice...   15.03.2010, 23:12:11
- - maniekl2   Stworzyłem prosty kod obliczający silnie jako przy...   16.03.2010, 00:34:45
|- - mike   Cytat(maniekl2 @ 16.03.2010, 00:34:45...   16.03.2010, 08:44:54
|- - zegarek84   ok ok , ale jak na początek... Cytat(mike @ 1...   16.03.2010, 11:21:15
|- - mike   Cytat(zegarek84 @ 16.03.2010, 11:21:1...   16.03.2010, 11:46:35
- - thek   Zegarek... A potem się dziwić, czemu kołki wypadaj...   16.03.2010, 11:37:26
|- - zegarek84   Cytat(thek @ 16.03.2010, 11:37:26 ) Z...   16.03.2010, 18:58:18
- - maniekl2   Ok, ale na przykład użycie iteratorów przy klasie ...   16.03.2010, 13:59:20
- - batman   Zamiast kombinować, sprawdź dostępne iteratory. Pr...   16.03.2010, 14:05:47
- - damiankopiec   Przykładowo jeśli Twoja klasa do obslugi bazy zwra...   16.03.2010, 14:11:16
- - Crozin   Jeżeli masz jakąś kolekcję obiektów (utworzonych n...   16.03.2010, 14:14:44
- - Cysiaczek   Nie, to akurat bardzo pożyteczne rozwiązanie, ale ...   16.03.2010, 14:19:41


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: 7.10.2025 - 06:50