Jump to content
php.lv forumi

php oo un iterator design pattern


renathy

Recommended Posts

Man te iedots viens uzdevums:

 

Dots kods:


<?php
$test = new testClass();
$test->a = 'a';
$test->b = 'b';
foreach( $test as $key => $value ){
echo $key . ' : ' . $value . "\n";
}
?>

 

Uzdevums ir ar OO un iterator design pattern papildinaat kodu, lai izdruka butu

a: a

b: b

Pie tam, ja pievieno jaunus elementus klasei, tiem japaradas iznakuma...

 

 

Vai varat ludzu tikt skaidriba ar uzdevuma butibu? Cik saprotu man jataisa testClass klase, kura jataisa savs iterators vai kaa isti saprast?

No otras puses es nesaprotu kapec tas vajadzigs, ja es uztaisu vienkarshi klasi ar diviem public mainigiem a un b, tad foreach ari automatiski pa vinjiem iteresies un nekadi savi iteratori nav vajadzigi...? Man kaut kas sajuka...

Link to comment
Share on other sites

Vai tad grūti gūglē iesist jautājumu "php iterator" ? Pirmais links atbildēs: http://php.net/manual/en/class.iterator.php

Iteratoros var apstrādāt custom darbības, ko ar pliku foreach nevarēs. Tipa dabūt jaunus datus no DB, vai ielādēt tos no faila, utml. Jo ne vienmēr visus datus var vienlaicīgi turēt ielādētus atmiņā.

Link to comment
Share on other sites

Nav grūti guglei paprasīt :)

Pirmkārt, paprasīju

Otrkārt, es zinu (vismaz man šķiet :)) Iteratora jēgu, rakstīju customos iteratorus c#-ā un javā.

 

Ja man jāraksta sava klase ar kaut kādām kolekcijām vai ņemot datus no datu bāzes, tad varu tām uzrakstīt savu iteratoru.

 

Es nesaprotu jēgu tieši dotajam uzdevumam - kas ir jādara manam pašrakstītajam Iteratoram konkrētā uzdevumā, kādas custom-ās darbības būtu jāveic? Tur it kā būtu vienkārši jāizdrukā mainīgo a un b vērtības (kas izskatās kā parastas virknes) un tad kāda jēga iteratoram, ja to var ar foreach...

 

R.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...