Example #1
0
 public function key()
 {
     if ($this->_currentGen) {
         return $this->_currentGen->key();
     }
     return key($this->_records);
 }
Example #2
0
 /**
  * @param \Generator $generator
  * @param string $prefix
  */
 public function __construct(\Generator $generator, string $prefix)
 {
     $yielded = $generator->current();
     $prefix .= \sprintf("; %s yielded at key %s", \is_object($yielded) ? \get_class($yielded) : \gettype($yielded), $generator->key());
     if (!$generator->valid()) {
         parent::__construct($prefix);
         return;
     }
     $reflGen = new \ReflectionGenerator($generator);
     $exeGen = $reflGen->getExecutingGenerator();
     if ($isSubgenerator = $exeGen !== $generator) {
         $reflGen = new \ReflectionGenerator($exeGen);
     }
     parent::__construct(\sprintf("%s on line %s in %s", $prefix, $reflGen->getExecutingLine(), $reflGen->getExecutingFile()));
 }
 /**
  * Return the key of the current element
  * @see Iterator::key
  * @link http://php.net/manual/en/iterator.key.php
  * @return mixed scalar on success, or null on failure.
  */
 public function key()
 {
     return $this->generator->key();
 }
Example #4
0
 protected function hasTokens()
 {
     return $this->_tokens->key() !== null;
 }
Example #5
0
 public function key()
 {
     if (!$this->generator) {
         $this->rewind();
     }
     return $this->generator->key();
 }
Example #6
0
 /**
  * Get current key
  *
  * @return mixed
  */
 public function key()
 {
     return $this->generator ? $this->generator->key() : $this->index++;
 }
Example #7
0
 /**
  * Return current key.
  * @return mixed
  */
 public function key()
 {
     $this->validateValidity();
     return $this->g->key();
 }