Srv Bebeboutik 340bc7c146 push site
2016-01-04 12:48:08 +01:00

112 lines
2.2 KiB
PHP
Executable File

<?php
/**
* Swift Mailer Array Iterator Interface
* Please read the LICENSE file
* @author Chris Corbyn <chris@w3style.co.uk>
* @package Swift
* @license GNU Lesser General Public License
*/
require_once dirname(__FILE__) . "/../ClassLoader.php";
Swift_ClassLoader::load("Swift_Iterator");
/**
* Swift Array Iterator Interface
* Iterates over a standard PHP array.
* @package Swift
* @author Chris Corbyn <chris@w3style.co.uk>
*/
class Swift_Iterator_Array implements Swift_Iterator
{
/**
* All keys in this array.
* @var array
*/
protected $keys;
/**
* All values in this array.
* @var array
*/
protected $values;
/**
* The current array position.
* @var int
*/
protected $pos = -1;
/**
* Ctor.
* @param array The array to iterate over.
*/
public function __construct($input)
{
$input = (array) $input;
$this->keys = array_keys($input);
$this->values = array_values($input);
}
/**
* Returns the original array.
* @return array
*/
public function getArray()
{
return array_combine($this->keys, $this->values);
}
/**
* Returns true if there is a value after the current one.
* @return boolean
*/
public function hasNext()
{
return array_key_exists($this->pos + 1, $this->keys);
}
/**
* Moves to the next array element if possible.
* @return boolean
*/
public function next()
{
if ($this->hasNext())
{
++$this->pos;
return true;
}
return false;
}
/**
* Goes directly to the given element in the array if possible.
* @param int Numeric position
* @return boolean
*/
public function seekTo($pos)
{
if (array_key_exists($pos, $this->keys))
{
$this->pos = $pos;
return true;
}
return false;
}
/**
* Returns the value at the current position, or NULL otherwise.
* @return mixed.
*/
public function getValue()
{
if (array_key_exists($this->pos, $this->values))
return $this->values[$this->pos];
else return null;
}
/**
* Gets the current numeric position within the array.
* @return int
*/
public function getPosition()
{
return $this->pos;
}
}