public function current() { if (!$this->class || $this->class->getName() != $this->list->current()) { if ($this->list->current()) { $this->class = new cfhCompile_Class_Reflection($this->list->current()); } else { $this->class = NULL; } } return $this->class; }
function current() { global $len; if ($len) { $val = substr(parent::current(), 0, $len); $nws = preg_replace("/([\r\n]|\\s\\s+)/e", " ", $val); return ($this->getIteratorIndex() ? '= ' : ': ') . $nws; } else { return ''; } }
<?php $a = new AppendIterator(); $a1 = new ArrayIterator([]); $a2 = new ArrayIterator([1, 2, 3]); $a->append($a1); $a->append($a2); var_dump($a->valid()); var_dump($a->current()); var_dump($a->getIteratorIndex()); // go to the end for ($a->rewind(); $a->valid(); $a->next()) { } $a->append(new ArrayIterator([])); $a->append(new ArrayIterator([4, 5, 6])); var_dump($a->valid()); var_dump($a->current()); var_dump($a->getIteratorIndex());
public function next() { $this->current = NULL; if (count($this->currentFileClasses) > 0) { $this->current = array_shift($this->currentFileClasses); return; } do { $file = $this->fileIterator->current(); if ($this->fileIterator->valid()) { $this->fileIterator->next(); } } while ($file && (!$file->isFile() || isset($this->inspectedFiles[$file->getRealPath()]) || !$this->filter->accept($file))); if ($file === NULL) { return; } $this->inspectedFiles[$file->getRealPath()] = TRUE; // We add a new line to the code so that the tokeniser will give us a // last token item for classes that end on the last line of a file // without any trailing white space. $tokens = token_get_all(@file_get_contents($file->getRealPath()) . PHP_EOL); $depth = -1; $className = NULL; $startLine = NULL; $endLine = NULL; $isInterface = FALSE; $dependancys = array(); $getDep = FALSE; reset($tokens); do { $token = current($tokens); switch ($depth) { case -1: if (!is_string($token)) { list($token, $text, $line) = $token; switch ($token) { case T_INTERFACE: $isInterface = TRUE; case T_CLASS: $depth = 0; $startLine = $line; $endLine = NULL; break; } } break; case 0: list($token, $text) = $token; switch ($token) { case T_STRING: $className = $text; $depth = 1; break; } break; case 1: if (is_string($token)) { if ($token == '{') { $depth = 3; } } else { list($token, $text) = $token; switch ($token) { case T_EXTENDS: $getDep = TRUE; break; case T_IMPLEMENTS: $getDep = TRUE; break; case T_STRING: if ($getDep) { $dependancys[] = $text; } break; case T_WHITESPACE: break; default: $getDep = FALSE; break; } } break; default: if (is_string($token)) { switch ($token) { case '{': $depth++; break; case '}': $depth--; break; } } else { list($token, $text, $endLine) = $token; switch ($token) { case T_CURLY_OPEN: case T_DOLLAR_OPEN_CURLY_BRACES: $depth++; break; } if ($depth == 2) { $depth = -1; prev($tokens); $class = new cfhCompile_Class_Manual($className, $file->getRealPath(), $startLine, $endLine, $isInterface, new ArrayIterator($dependancys)); array_push($this->currentFileClasses, $class); $className = NULL; $startLine = NULL; $endLine = NULL; $isInterface = FALSE; $dependancys = array(); $getDep = FALSE; } } break; } } while (next($tokens)); $this->next(); }
/** * {@inheritdoc} */ public function current() { $this->lazyAppend(); return parent::current(); }
function current() { echo __METHOD__ . '; '; return parent::current(); }
/** * Support for readdir(). * * @return string|bool the next filename, or false if there are no more * files in the directory * @see http://www.php.net/manual/en/function.readdir.php */ public function dir_readdir() { while ($this->_directoryIterator->valid()) { $key = $this->_directoryIterator->key(); $current = $this->_directoryIterator->current(); $iterator = $this->_directoryIterator->getInnerIterator(); try { $this->_directoryIterator->next(); } catch (Services_Amazon_S3_Exception $e) { return false; } if (is_string($current)) { // Return "." or ".." return $key; } if ($iterator instanceof Services_Amazon_S3_ObjectIterator) { // Strip prefix and any trailing slash $key = rtrim(substr($key, strlen($iterator->prefix)), '/'); } else { // When iterating over buckets, $current is a bucket instance $key = $current->name; } // Subdirectories may be represented in two different ways - make // sure not to report duplicates $subdirectory = false; if (substr($key, -9) == '_$folder$') { $subdirectory = $key = substr($key, 0, -9); } elseif ($current instanceof Services_Amazon_S3_Prefix) { $subdirectory = $key; } if ($subdirectory) { if (!in_array($key, $this->_subdirectories)) { $this->_subdirectories[] = $key; return $key; } } else { return $key; } } return false; }
/** * Returns the current iterator value * * @return Mixed */ public function current() { return $this->inputs->current(); }
[expect php] [file] <?php $pizzas = new ArrayIterator(array('Margarita', 'Siciliana', 'Hawaii')); $toppings = new ArrayIterator(array('Cheese', 'Anchovies', 'Olives', 'Pineapple', 'Ham')); $appendIterator = new AppendIterator(); $appendIterator->append($pizzas); $appendIterator->append($toppings); foreach ($appendIterator as $key => $item) { echo "{$key} => {$item}", PHP_EOL; } $appendIterator->append($toppings); while ($appendIterator->valid()) { echo $appendIterator->key() . " => " . $appendIterator->current() . "\n"; $appendIterator->next(); }
/** * Returns the current element. * @see http://php.net/manual/en/class.iterator.php * @return mixed */ public function current() { return $this->_appendIterator->current(); }
public function testResultsetAppendIterator() { if (!$this->_prepareTestMysql()) { $this->markTestSkipped("Skipped"); return; } // see http://php.net/manual/en/appenditerator.construct.php $iterator = new \AppendIterator(); $robots_first = Robots::find(array('limit' => 2)); $robots_second = Robots::find(array('limit' => 1, 'offset' => 2)); $robots_first_0 = $robots_first[0]; $robots_first_1 = $robots_first[1]; $robots_second_0 = $robots_second[0]; $iterator->append($robots_first); $iterator->append($robots_second); $iterator->rewind(); $this->assertTrue($iterator->valid()); $this->assertEquals($iterator->key(), 0); $this->assertEquals($iterator->getIteratorIndex(), 0); $this->assertEquals(get_class($iterator->current()), 'Robots'); $this->assertEquals($robots_first_0->name, $iterator->current()->name); $iterator->next(); $this->assertTrue($iterator->valid()); $this->assertEquals($iterator->key(), 1); $this->assertEquals($iterator->getIteratorIndex(), 0); $this->assertEquals(get_class($iterator->current()), 'Robots'); $this->assertEquals($robots_first_1->name, $iterator->current()->name); $iterator->next(); $this->assertTrue($iterator->valid()); $this->assertEquals($iterator->key(), 0); $this->assertEquals($iterator->getIteratorIndex(), 1); $this->assertEquals(get_class($iterator->current()), 'Robots'); $this->assertEquals($robots_second_0->name, $iterator->current()->name); $iterator->next(); $this->assertFalse($iterator->valid()); }