1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- <?php
- namespace Pingpp\Util;
- use IteratorAggregate;
- use ArrayIterator;
- class Set implements IteratorAggregate
- {
- private $_elts;
- public function __construct($members = array())
- {
- $this->_elts = array();
- foreach ($members as $item) {
- $this->_elts[$item] = true;
- }
- }
- public function includes($elt)
- {
- return isset($this->_elts[$elt]);
- }
- public function add($elt)
- {
- $this->_elts[$elt] = true;
- }
- public function discard($elt)
- {
- unset($this->_elts[$elt]);
- }
- public function toArray()
- {
- return array_keys($this->_elts);
- }
- public function getIterator()
- {
- return new ArrayIterator($this->toArray());
- }
- }
|