title: Why is the 3rd parameter needed in iterator_apply example
body: <p>From <a href="http://php.net/manual/en/function.iterator-apply.php" rel="nofollow noreferrer">http://php.net/manual/en/function.iterator-apply.php</a></p>
  
  <p>I can't understand from the documentation why the 3rd parameter, i.e. array($it), is needed in the example below.
  
  <pre><code>function print_caps(Iterator $iterator) {
      echo strtoupper($iterator-&gt;current()) . "\n";
      return TRUE;
  }
  
  $it = new ArrayIterator(array("Apples", "Bananas", "Cherries"));
  iterator_apply($it, "print_caps", array($it));
  ?&gt;
  </code></pre>