Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- class Container {
- protected $values;
- public function __construct() {
- $this->values = array();
- }
- public function __get($key) {
- return $this->values[$key] ?? NULL;
- }
- public function __set($key, $value) {
- $this->values[$key] = $value;
- }
- public function find(\Closure $match) {
- foreach ($this->values as $value) {
- if ($match($value)) {
- return $match;
- }
- }
- }
- public function findAll(\Closure $match) {
- foreach ($this->values as $value) {
- if ($match($value)) {
- yield $value;
- }
- }
- }
- }
- $container = new Container();
- foreach (range(0, 101) as $value) {
- $container->$value = $value;
- }
- printValues($container->findAll(function ($num) { return $num % 2 == 0; }));
- echo '<br />';
- printValues($container->findAll(function ($num) { return $num % 2 == 1; }));
- function printValues($values) {
- foreach ($values as $value) {
- echo $value . ' ';
- }
- }
- ?>
- ===================================================================================================
- 0 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 42 44 46 48 50 52 54 56 58 60 62 64 66 68 70 72 74 76 78 80 82 84 86 88 90 92 94 96 98 100
- 1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 51 53 55 57 59 61 63 65 67 69 71 73 75 77 79 81 83 85 87 89 91 93 95 97 99 101
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement