Annotation of embedaddon/php/ext/spl/examples/keyfilter.inc, revision 1.1
1.1 ! misho 1: <?php
! 2:
! 3: /** @file keyfilter.inc
! 4: * @ingroup Examples
! 5: * @brief class KeyFilter
! 6: * @author Marcus Boerger
! 7: * @date 2003 - 2005
! 8: *
! 9: * SPL - Standard PHP Library
! 10: */
! 11:
! 12: /** @ingroup Examples
! 13: * @brief Regular expression filter for string iterators
! 14: * @author Marcus Boerger
! 15: * @version 1.1
! 16: *
! 17: * Instances of this class act as a filter around iterators whose elements
! 18: * are strings. In other words you can put an iterator into the constructor
! 19: * and the instance will only return elements which match the given regular
! 20: * expression.
! 21: */
! 22: class KeyFilter extends FilterIterator
! 23: {
! 24: /** @internal regular exoression used as filter */
! 25: private $regex;
! 26:
! 27: /**
! 28: * Constructs a filter around an iterator whose elemnts are strings.
! 29: * If the given iterator is of type spl_sequence then its rewind()
! 30: * method is called.
! 31: *
! 32: * @param it Object that implements at least spl_forward
! 33: * @param regex Regular expression used as a filter.
! 34: */
! 35: function __construct(Iterator $it, $regex)
! 36: {
! 37: parent::__construct($it);
! 38: $this->regex = $regex;
! 39: }
! 40:
! 41: /** \return whether the current key mathes the regular expression
! 42: */
! 43: function accept()
! 44: {
! 45: return ereg($this->regex, $this->getInnerIterator()->key());
! 46: }
! 47:
! 48: /** @return regular expression used as filter
! 49: */
! 50: function getRegex()
! 51: {
! 52: return $this->regex;
! 53: }
! 54:
! 55: /**
! 56: * hidden __clone
! 57: */
! 58: protected function __clone()
! 59: {
! 60: // disallow clone
! 61: }
! 62: }
! 63:
! 64: ?>
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>