<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/spl.iterators.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'ru',
  ),
  'this' => 
  array (
    0 => 'class.cachingiterator.php',
    1 => 'CachingIterator',
    2 => 'Класс CachingIterator',
  ),
  'up' => 
  array (
    0 => 'spl.iterators.php',
    1 => 'Итераторы',
  ),
  'prev' => 
  array (
    0 => 'arrayiterator.valid.php',
    1 => 'ArrayIterator::valid',
  ),
  'next' => 
  array (
    0 => 'cachingiterator.construct.php',
    1 => 'CachingIterator::__construct',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'ru',
    'path' => 'reference/spl/cachingiterator.xml',
  ),
  'history' => 
  array (
  ),
  'extra_header_links' => 
  array (
    'rel' => 'alternate',
    'href' => '/manual/en/feeds/class.cachingiterator.atom',
    'type' => 'application/atom+xml',
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="class.cachingiterator" class="reference">
 <h1 class="title">Класс CachingIterator</h1>
 

 <div class="partintro"><p class="verinfo">(PHP 5, PHP 7, PHP 8)</p>

  
  <div class="section" id="cachingiterator.intro">
   <h2 class="title">Введение</h2>
   <p class="para">
    Этот объект поддерживает кеширование итерации над другим итератором.
   </p>
  </div>
  

  <div class="section" id="cachingiterator.synopsis">
   <h2 class="title">Обзор класса</h2>

   
   <div class="classsynopsis"><div class="classsynopsisinfo">
    
     <span class="modifier">class</span> <strong class="classname"><strong class="classname">CachingIterator</strong></strong>
    

    
     <span class="modifier">extends</span>
      <a href="class.iteratoriterator.php" class="classname">IteratorIterator</a>
    

    
     <span class="modifier">implements</span>
      <a href="class.arrayaccess.php" class="interfacename">ArrayAccess</a>,

     <a href="class.countable.php" class="interfacename">Countable</a>,

     <a href="class.stringable.php" class="interfacename">Stringable</a> {</div>

    <div class="classsynopsisinfo classsynopsisinfo_comment">/* Константы */</div>
    <div class="fieldsynopsis">
     <span class="modifier">public</span>
     <span class="modifier">const</span>
     <span class="type"><a href="language.types.integer.php" class="type int">int</a></span>
      <var class="fieldsynopsis_varname"><a href="class.cachingiterator.php#cachingiterator.constants.call-tostring"><var class="varname">CALL_TOSTRING</var></a></var>;</div>

    <div class="fieldsynopsis"><span class="modifier">public</span>
     <span class="modifier">const</span>
     <span class="type"><a href="language.types.integer.php" class="type int">int</a></span>
      <var class="fieldsynopsis_varname"><a href="class.cachingiterator.php#cachingiterator.constants.catch-get-child"><var class="varname">CATCH_GET_CHILD</var></a></var>;</div>

    <div class="fieldsynopsis"><span class="modifier">public</span>
     <span class="modifier">const</span>
     <span class="type"><a href="language.types.integer.php" class="type int">int</a></span>
      <var class="fieldsynopsis_varname"><a href="class.cachingiterator.php#cachingiterator.constants.tostring-use-key"><var class="varname">TOSTRING_USE_KEY</var></a></var>;</div>

    <div class="fieldsynopsis"><span class="modifier">public</span>
     <span class="modifier">const</span>
     <span class="type"><a href="language.types.integer.php" class="type int">int</a></span>
      <var class="fieldsynopsis_varname"><a href="class.cachingiterator.php#cachingiterator.constants.tostring-use-current"><var class="varname">TOSTRING_USE_CURRENT</var></a></var>;</div>

    <div class="fieldsynopsis"><span class="modifier">public</span>
     <span class="modifier">const</span>
     <span class="type"><a href="language.types.integer.php" class="type int">int</a></span>
      <var class="fieldsynopsis_varname"><a href="class.cachingiterator.php#cachingiterator.constants.tostring-use-inner"><var class="varname">TOSTRING_USE_INNER</var></a></var>;</div>

    <div class="fieldsynopsis"><span class="modifier">public</span>
     <span class="modifier">const</span>
     <span class="type"><a href="language.types.integer.php" class="type int">int</a></span>
      <var class="fieldsynopsis_varname"><a href="class.cachingiterator.php#cachingiterator.constants.full-cache"><var class="varname">FULL_CACHE</var></a></var>;</div>


    <div class="classsynopsisinfo classsynopsisinfo_comment">/* Методы */</div>
    <div class="constructorsynopsis dc-description">
   <span class="modifier">public</span> <span class="methodname"><a href="cachingiterator.construct.php" class="methodname">__construct</a></span>(<span class="methodparam"><span class="type"><a href="class.iterator.php" class="type Iterator">Iterator</a></span> <code class="parameter">$iterator</code></span>, <span class="methodparam"><span class="type"><a href="language.types.integer.php" class="type int">int</a></span> <code class="parameter">$flags</code><span class="initializer"> = <strong><code><a href="class.cachingiterator.php#cachingiterator.constants.call-tostring">CachingIterator::CALL_TOSTRING</a></code></strong></span></span>)</div>

    <div class="methodsynopsis dc-description"><span class="modifier">public</span> <span class="methodname"><a href="cachingiterator.count.php" class="methodname">count</a></span>(): <span class="type"><a href="language.types.integer.php" class="type int">int</a></span></div>
<div class="methodsynopsis dc-description"><span class="modifier">public</span> <span class="methodname"><a href="cachingiterator.current.php" class="methodname">current</a></span>(): <span class="type"><a href="language.types.mixed.php" class="type mixed">mixed</a></span></div>
<div class="methodsynopsis dc-description"><span class="modifier">public</span> <span class="methodname"><a href="cachingiterator.getcache.php" class="methodname">getCache</a></span>(): <span class="type"><a href="language.types.array.php" class="type array">array</a></span></div>
<div class="methodsynopsis dc-description"><span class="modifier">public</span> <span class="methodname"><a href="cachingiterator.getflags.php" class="methodname">getFlags</a></span>(): <span class="type"><a href="language.types.void.php" class="type void">void</a></span></div>
<div class="methodsynopsis dc-description"><span class="modifier">public</span> <span class="methodname"><a href="cachingiterator.hasnext.php" class="methodname">hasNext</a></span>(): <span class="type"><a href="language.types.boolean.php" class="type bool">bool</a></span></div>
<div class="methodsynopsis dc-description"><span class="modifier">public</span> <span class="methodname"><a href="cachingiterator.key.php" class="methodname">key</a></span>(): <span class="type">scalar</span></div>
<div class="methodsynopsis dc-description"><span class="modifier">public</span> <span class="methodname"><a href="cachingiterator.next.php" class="methodname">next</a></span>(): <span class="type"><a href="language.types.void.php" class="type void">void</a></span></div>
<div class="methodsynopsis dc-description"><span class="modifier">public</span> <span class="methodname"><a href="cachingiterator.offsetexists.php" class="methodname">offsetExists</a></span>(<span class="methodparam"><span class="type"><a href="language.types.string.php" class="type string">string</a></span> <code class="parameter">$key</code></span>): <span class="type"><a href="language.types.boolean.php" class="type bool">bool</a></span></div>
<div class="methodsynopsis dc-description"><span class="modifier">public</span> <span class="methodname"><a href="cachingiterator.offsetget.php" class="methodname">offsetGet</a></span>(<span class="methodparam"><span class="type"><a href="language.types.string.php" class="type string">string</a></span> <code class="parameter">$key</code></span>): <span class="type"><a href="language.types.mixed.php" class="type mixed">mixed</a></span></div>
<div class="methodsynopsis dc-description"><span class="modifier">public</span> <span class="methodname"><a href="cachingiterator.offsetset.php" class="methodname">offsetSet</a></span>(<span class="methodparam"><span class="type"><a href="language.types.string.php" class="type string">string</a></span> <code class="parameter">$key</code></span>, <span class="methodparam"><span class="type"><a href="language.types.mixed.php" class="type mixed">mixed</a></span> <code class="parameter">$value</code></span>): <span class="type"><a href="language.types.void.php" class="type void">void</a></span></div>
<div class="methodsynopsis dc-description"><span class="modifier">public</span> <span class="methodname"><a href="cachingiterator.offsetunset.php" class="methodname">offsetUnset</a></span>(<span class="methodparam"><span class="type"><a href="language.types.string.php" class="type string">string</a></span> <code class="parameter">$key</code></span>): <span class="type"><a href="language.types.void.php" class="type void">void</a></span></div>
<div class="methodsynopsis dc-description"><span class="modifier">public</span> <span class="methodname"><a href="cachingiterator.rewind.php" class="methodname">rewind</a></span>(): <span class="type"><a href="language.types.void.php" class="type void">void</a></span></div>
<div class="methodsynopsis dc-description"><span class="modifier">public</span> <span class="methodname"><a href="cachingiterator.setflags.php" class="methodname">setFlags</a></span>(<span class="methodparam"><span class="type"><a href="language.types.integer.php" class="type int">int</a></span> <code class="parameter">$flags</code></span>): <span class="type"><a href="language.types.void.php" class="type void">void</a></span></div>
<div class="methodsynopsis dc-description"><span class="modifier">public</span> <span class="methodname"><a href="cachingiterator.tostring.php" class="methodname">__toString</a></span>(): <span class="type"><a href="language.types.string.php" class="type string">string</a></span></div>
<div class="methodsynopsis dc-description"><span class="modifier">public</span> <span class="methodname"><a href="cachingiterator.valid.php" class="methodname">valid</a></span>(): <span class="type"><a href="language.types.boolean.php" class="type bool">bool</a></span></div>


    <div class="classsynopsisinfo classsynopsisinfo_comment">/* Наследуемые методы */</div>
    <div class="methodsynopsis dc-description"><span class="modifier">public</span> <span class="methodname"><a href="iteratoriterator.current.php" class="methodname">IteratorIterator::current</a></span>(): <span class="type"><a href="language.types.mixed.php" class="type mixed">mixed</a></span></div>
<div class="methodsynopsis dc-description"><span class="modifier">public</span> <span class="methodname"><a href="iteratoriterator.getinneriterator.php" class="methodname">IteratorIterator::getInnerIterator</a></span>(): <span class="type"><span class="type"><a href="language.types.null.php" class="type null">?</a></span><span class="type"><a href="class.iterator.php" class="type Iterator">Iterator</a></span></span></div>
<div class="methodsynopsis dc-description"><span class="modifier">public</span> <span class="methodname"><a href="iteratoriterator.key.php" class="methodname">IteratorIterator::key</a></span>(): <span class="type"><a href="language.types.mixed.php" class="type mixed">mixed</a></span></div>
<div class="methodsynopsis dc-description"><span class="modifier">public</span> <span class="methodname"><a href="iteratoriterator.next.php" class="methodname">IteratorIterator::next</a></span>(): <span class="type"><a href="language.types.void.php" class="type void">void</a></span></div>
<div class="methodsynopsis dc-description"><span class="modifier">public</span> <span class="methodname"><a href="iteratoriterator.rewind.php" class="methodname">IteratorIterator::rewind</a></span>(): <span class="type"><a href="language.types.void.php" class="type void">void</a></span></div>
<div class="methodsynopsis dc-description"><span class="modifier">public</span> <span class="methodname"><a href="iteratoriterator.valid.php" class="methodname">IteratorIterator::valid</a></span>(): <span class="type"><a href="language.types.boolean.php" class="type bool">bool</a></span></div>

   }</div>
   

  </div>

  
  <div class="section" id="cachingiterator.constants">
   <h2 class="title">Предопределённые константы</h2>
   <dl>

    
     <dt id="cachingiterator.constants.call-tostring"><strong><code><a href="class.cachingiterator.php#cachingiterator.constants.call-tostring">CachingIterator::CALL_TOSTRING</a></code></strong></dt>
     <dd>
      <p class="para">Преобразует каждый элемент в строку.</p>
     </dd>
    

    
     <dt id="cachingiterator.constants.catch-get-child"><strong><code><a href="class.cachingiterator.php#cachingiterator.constants.catch-get-child">CachingIterator::CATCH_GET_CHILD</a></code></strong></dt>
     <dd>
      <p class="para">Не выбрасывать исключения при доступе к дочерним элементам.</p>
     </dd>
    

    
     <dt id="cachingiterator.constants.tostring-use-key"><strong><code><a href="class.cachingiterator.php#cachingiterator.constants.tostring-use-key">CachingIterator::TOSTRING_USE_KEY</a></code></strong></dt>
     <dd>
      <p class="para">
       Использовать <a href="cachingiterator.key.php" class="link">ключ</a> при
       преобразовании в строку.
      </p>
     </dd>
    

    
     <dt id="cachingiterator.constants.tostring-use-current"><strong><code><a href="class.cachingiterator.php#cachingiterator.constants.tostring-use-current">CachingIterator::TOSTRING_USE_CURRENT</a></code></strong></dt>
     <dd>
      <p class="para">
       Использовать <a href="cachingiterator.current.php" class="link">текущий элемент</a>
       при преобразовании в строку.</p>
     </dd>
    

    
     <dt id="cachingiterator.constants.tostring-use-inner"><strong><code><a href="class.cachingiterator.php#cachingiterator.constants.tostring-use-inner">CachingIterator::TOSTRING_USE_INNER</a></code></strong></dt>
     <dd>
      <p class="para">
       Использовать <a href="iteratoriterator.getinneriterator.php" class="link">внутренний
       итератор</a> при преобразовании в строку.
      </p>
     </dd>
    

    
     <dt id="cachingiterator.constants.full-cache"><strong><code><a href="class.cachingiterator.php#cachingiterator.constants.full-cache">CachingIterator::FULL_CACHE</a></code></strong></dt>
     <dd>
      <p class="para">Кеширование всей прочтённой информации.</p>
     </dd>
    

   </dl>
  </div>
  

  <div class="section">
   <h2 class="title">Список изменений</h2>
   <table class="doctable informaltable">
    
     <thead>
      <tr>
       <th>Версия</th>
       <th>Описание</th>
      </tr>

     </thead>

     <tbody class="tbody">
      <tr>
       <td>8.0.0</td>
       <td>
        Класс <span class="classname"><strong class="classname">CachingIterator</strong></span> теперь реализует
        интерфейс <span class="interfacename"><a href="class.stringable.php" class="interfacename">Stringable</a></span>.
       </td>
      </tr>

     </tbody>
    
   </table>

  </div>

 </div>

 
































































































<h2>Содержание</h2><ul class="chunklist chunklist_reference"><li><a href="cachingiterator.construct.php">CachingIterator::__construct</a> — Создаёт новый объект CachingIterator для итератора</li><li><a href="cachingiterator.count.php">CachingIterator::count</a> — Возвращает число элементов в итераторе</li><li><a href="cachingiterator.current.php">CachingIterator::current</a> — Возвращает текущий элемент</li><li><a href="cachingiterator.getcache.php">CachingIterator::getCache</a> — Получение содержимого кеша</li><li><a href="cachingiterator.getflags.php">CachingIterator::getFlags</a> — Получает используемые флаги</li><li><a href="cachingiterator.hasnext.php">CachingIterator::hasNext</a> — Проверяет, имеет ли внутренний итератор допустимый следующий элемент</li><li><a href="cachingiterator.key.php">CachingIterator::key</a> — Возвращает ключ для текущего элемента</li><li><a href="cachingiterator.next.php">CachingIterator::next</a> — Перемещает итератор к следующему элементу</li><li><a href="cachingiterator.offsetexists.php">CachingIterator::offsetExists</a> — Назначение offsetExists</li><li><a href="cachingiterator.offsetget.php">CachingIterator::offsetGet</a> — Назначение offsetGet</li><li><a href="cachingiterator.offsetset.php">CachingIterator::offsetSet</a> — Назначение offsetSet</li><li><a href="cachingiterator.offsetunset.php">CachingIterator::offsetUnset</a> — Назначение offsetUnset</li><li><a href="cachingiterator.rewind.php">CachingIterator::rewind</a> — Возвращает итератор в начало</li><li><a href="cachingiterator.setflags.php">CachingIterator::setFlags</a> — Устанавливает флаги для объекта CachingIterator</li><li><a href="cachingiterator.tostring.php">CachingIterator::__toString</a> — Возвращает строковое представление текущего элемента</li><li><a href="cachingiterator.valid.php">CachingIterator::valid</a> — Проверяет, является ли текущий элемент допустимым</li></ul>
</div>
<?php manual_footer($setup); ?>