HEX
Server: Apache
System: Linux darrell.nocdirect.com 4.18.0-513.18.2.el8_9.x86_64 #1 SMP Sat Mar 30 06:10:41 EDT 2024 x86_64
User: joderbya (1358)
PHP: 8.0.30
Disabled: NONE
Upload Files
File: //home/joderbya/quickstep.ss-servicos.co.mz/includes/odtphp/SegmentIterator.php
<?php
/**
 * Segments iterator
 * You need PHP 5.2 at least
 * You need Zip Extension or PclZip library
 *
 * @copyright  GPL License 2008 - Julien Pauli - Cyril PIERRE de GEYER - Anaska (http://www.anaska.com)
 * @license    https://www.gnu.org/copyleft/gpl.html  GPL License
 * @version 1.3
 */
class SegmentIterator implements RecursiveIterator
{
    private $ref;
    private $key;
	private $keys;
    public function __construct(array $ref)
    {
        $this->ref = $ref;
        $this->key = 0;
        $this->keys = array_keys($this->ref);
    }
	#[\ReturnTypeWillChange]
    public function hasChildren()
    {
        return $this->valid() && $this->current() instanceof Segment;
    }
	#[\ReturnTypeWillChange]
    public function current()
    {
        return $this->ref[$this->keys[$this->key]];
    }
	#[\ReturnTypeWillChange]
    function getChildren()
    {
        return new self($this->current()->children);
    }
	#[\ReturnTypeWillChange]
    public function key()
    {
        return $this->key;
    }
	#[\ReturnTypeWillChange]
    public function valid()
    {
        return array_key_exists($this->key, $this->keys);
    }
	/**
	 * @return void
	 */
	#[\ReturnTypeWillChange]
    public function rewind()
    {
        $this->key = 0;
    }
	/**
	 * @return void
	 */
	#[\ReturnTypeWillChange]
    public function next()
    {
        $this->key ++;
    }
}