Hér er Zebra classi sem ég skrifaði í morgun til að “auðvelda” mér litlar lúppur.

Tilgangslaust en fínt að gera svona rugl við og við.


class Zebra
{
        public static $z;
        private $_aZebra = array();
        public function __construct( $aInput = '' )
        {
                if( is_array( $aInput ) && !empty( $aInput ) )
                {
                        $this->_aZebra = $aInput;
                }
                else
                {
                        $this->_aZebra = array(
                                '#fff',
                                '#000',
                        );
                }
        }
        public function z()
        {
                if( !$this->z || !in_array( $this->z, $this->_aZebra ) )
                {
                        $this->z = $this->_aZebra[0];
                        return $this->z;
                }
                $iCount = count( $this->_aZebra );
                $iPos = array_search( $this->z, $this->_aZebra );
                if( $iPos == $iCount )
                        $this->z = $this->_aZebra[0];
                else
                        $this->z = $this->_aZebra[$iPos + 1];
                return $this->z;
        }
}

Ég hef nöfnin viljandi villandi til að þið rýnið ofan í classann og reynið að skilja hvað sé í gangi í honum.

Ef hann virkar ekki eins og þið viljið að hann virki, breytið honum þá. :)

Notkun:

$z = new Zebra(array('#f0f', '#faf', '#faa', '#aaf'));
                foreach( $aContent as $oContent => $oThisContent )
                {
                        $z->z();
?>
                        <li style="background-color: <?php echo $z->z; ?>;"><?php echo $oThisContent->iCID; ?> <?php echo $oThisContent->sAuthor; ?></li>
<?php
                }
?>
                </ul>

Annað dæmi væri t.d. nafn á css-class

$z = new Zebra('left', 'right');
foreach( $array as $key => $value )
{
  $z->z();
?>
  <li class="<?php echo $z->z; ?>">asdf</li>
<?php
}
?>

Enjoy