Je suis entrain de tester ce qu"il est possible de faire avec les objects du style ITERATOR.
Ce n'est pas mal mais ce serait bcp mieux si on pouvait (et à mon avis on peut...) passer une "user function" comme paramètre.
Voici mon test:
Que manque t'il pour qu'on puisse faire :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46 <?php class myIterator implements Iterator { private $start, $end ; public function __construct( $start, $end ) { $this->curr = $this->start = $start ; $this->end = $end ; } /** * Iterator methods * */ function rewind() { $this->curr = $this->start ; } function key() { return($this->curr) ; } function current() { return(pow($this->curr,2)) ; } function next() { if ($this->valid()) $this->curr++ ; } function valid() { return( ($this->curr <= $this->end) ? true : false ) ; } /** * End of Iterator methods * */ } $array = new myIterator( 10, 15 ); while($array->valid() ) { print("the power of " . $array->key() . " is " . $array->current() . "<br>\n") ; $array->next() ; } ?>
il faut au moins passer la fonction comme paramètre:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 function myFunction() { N"importe quoi } $array = new myIterator( 10, 15 , myFunction);
Je cherche - mal sans doute - et donc, je vous demande un p'tit coup de pouce
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 public function __construct( $start, $end, myFunction() ) Afin que la méthode currrent devienne: function current() { return(myFunction())) ; }
Partager