<?php
/**
 * Use this to print alternating values from an array.
 * It cycles through a series of values based on an iteration number.
 * For example, you could use this for alternating background colors.
 */

Class Cycle {
        var $options;
        var $num_options;
        var $idx;
        public function __construct()
        {
                $this->options = func_get_args();
                $this->num_options = count($this->options);
                if( is_array($this->options[0]) )
                {
                        $this->options = $this->options[0];
                        $this->num_options = count($this->options);
                }
                $this->idx = 0;
        }
        public function __toString()
        {
                $ret = $this->options[$this->idx++];
                if( $this->idx >= $this->num_options ) $this->idx = 0;
                return $ret;
        }
}

//usage
$cycle = new Cycle('red','green','blue');
echo $cycle; //red
echo $cycle; //green
echo $cycle; //blue
echo $cycle; //red
//outputs redgreenbluered
?>