当前位置: 首页>>代码示例>>PHP>>正文


PHP AppendIterator::valid方法代码示例

本文整理汇总了PHP中AppendIterator::valid方法的典型用法代码示例。如果您正苦于以下问题:PHP AppendIterator::valid方法的具体用法?PHP AppendIterator::valid怎么用?PHP AppendIterator::valid使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在AppendIterator的用法示例。


在下文中一共展示了AppendIterator::valid方法的12个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: lazyAppend

 /**
  * Lazily append the next iterator to the chain
  */
 private function lazyAppend()
 {
     if (!parent::valid() and $this->iterators->valid()) {
         $this->append($this->iterators->current());
         $this->iterators->next();
     }
 }
开发者ID:indigophp,项目名称:iterators,代码行数:10,代码来源:LazyAppendIterator.php

示例2: valid

 /**
  * Overrides valid function from parent iterator class to append new iterators on the fly
  * once the previous one reached its end.
  *
  * @return boolean true if there's still more results to be fetched, flase otherwise
  **/
 public function valid()
 {
     $valid = parent::valid();
     if (!$valid && $this->_current < $this->_totalPages) {
         $from = $this->_current * $this->_pageSize;
         $query = array('scroll_id' => $this->_scrollId, 'from' => $from, 'size' => $this->_pageSize);
         $this->append(new ElasticCursor($this->_source, compact('query') + $this->_options));
         $this->_current++;
         $valid = true;
     }
     return $valid;
 }
开发者ID:el-barto,项目名称:cakephp-elastic-search-datasource,代码行数:18,代码来源:ElasticScroll.php

示例3: _eachGetIterator

 protected function _eachGetIterator($method, $arg1 = NULL, $arg2 = NULL, $arg3 = NULL)
 {
     $it = new \AppendIterator();
     $arr = array();
     foreach ($this as $el) {
         $tmp = $el->{$method}($arg1, $arg2, $arg3);
         if ($tmp instanceof \Iterator) {
             $it->append($tmp);
         } else {
             $arr[] = $tmp;
         }
     }
     if (!empty($arr)) {
         $it->append(new \ArrayIterator($arr));
     }
     if ($it->valid()) {
         return new QuipXmlElementIterator($it);
     }
     return $this->{'no results'};
 }
开发者ID:wittiws,项目名称:quipxml,代码行数:20,代码来源:QuipXmlElementIterator.php

示例4: valid

 function valid()
 {
     echo __METHOD__ . "\n";
     return parent::valid();
 }
开发者ID:zaky-92,项目名称:php-1,代码行数:5,代码来源:ext_spl_tests_iterator_031.php

示例5: AppendIterator

<?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());
开发者ID:badlamer,项目名称:hhvm,代码行数:18,代码来源:append_iterator_skips_empty_iterators.php

示例6: next

 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;
                     }
//.........这里部分代码省略.........
开发者ID:googlecode-mirror,项目名称:cfh-compile,代码行数:101,代码来源:FileInfo.php

示例7: valid

 public function valid()
 {
     return $this->list->valid();
 }
开发者ID:googlecode-mirror,项目名称:cfh-compile,代码行数:4,代码来源:Declared.php

示例8: dir_readdir

 /**
  * 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;
 }
开发者ID:balibali,项目名称:opPluginChannelServerPlugin,代码行数:48,代码来源:Stream.php

示例9: valid

 /**
  * Returns whether the current iterator value is valid
  *
  * @return boolean
  */
 public function valid()
 {
     return $this->inputs->valid();
 }
开发者ID:Nycto,项目名称:phpVocab,代码行数:9,代码来源:Paths.php

示例10: ArrayIterator

[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();
}
开发者ID:dw4dev,项目名称:Phalanger,代码行数:16,代码来源:AppendIterator1.php

示例11: valid

 /**
  * @see http://php.net/manual/en/class.iterator.php#96691
  * @return bool
  */
 public function valid()
 {
     return $this->_appendIterator->valid();
 }
开发者ID:adnan0703,项目名称:sitemap,代码行数:8,代码来源:ModelsSitemapEntriesIterator.php

示例12: testResultsetAppendIterator

 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());
 }
开发者ID:lisong,项目名称:cphalcon,代码行数:36,代码来源:ModelsResultsetTest.php


注:本文中的AppendIterator::valid方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。