which() for each row!" />
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z Snippets Functions Classes
Home | PHP Resources | MySQL Zipbase | Forums
/**
* Allows you to easily keep track of rows of items as either odd or even.
* Each time you check (using the "which" method) the counter increments so that
* the next time you check the state will have changed.
*
* Jonathan Spalink
* Dec. 2009
*/
class OddEven
{
private $counter;
private $odd;
private $even;
const ODD = "odd";
const EVEN = "even";
/**
* Constructor method to create a new OddEven counter
*
* @param String $odd The value to return when the counter is Odd
* @param String $even The value to return when the counter is Even
*/
public function __construct($odd=self::ODD, $even=self::EVEN)
{
$this->counter = 1;
$this->odd = $odd;
$this->even = $even;
}
/**
* Increase the counter by 1 and return the old value
*
* @return Int The value of the counter before it is incremented
*/
public function increment()
{
return $this->counter++;
}
/**
* Resets the counter
*
* @param Int $initial The value at which to start the counter
*/
public function reset($initial=1)
{
$this->counter = $initial;
}
/**
* Runs an interation of the counter and returns whether its Odd or Even.
* This also increments the counter by 1.
*
* @return String Odd or Even?
*/
public function which()
{
$now = $this->increment();
return ($now % 2 ? $this->odd : $this->even);
}
/**
* Static invocation of the OddEven class to simply check a number without
* futher complications. If you don't pass in $odd or $even then the class
* defaults are used.
*
* @param int $number The number to check
* @param mixed $odd Value to return if number is odd
* @param mixed $even Value to return if number is even
* @return mixed $odd or $even
*/
static public function OddOrEven($number, $odd=self::ODD, $even=self::EVEN)
{
return ($number % 2 ? $odd : $even);
}
}
Suggested Difficulty Level: No votes yet.
Current Score: No votes yet
Total Views: 833
Other top snippets by spalink:
1. Auth Class with (2.83 of 87)
2. Test Please Delete (2.83 of 30)
3. Return all repeated (3.64 of 72)
4. Convert an integer (3.3 of 71)
5. URL Shortening for (2.75 of 52)
6. Monthly Content Sorting (3 of 45)
7. Show String Trimmed (2.97 of 65)
8. Human readable file (2.01 of 70)
9. Randomize array values (2.8 of 82)
10. Create a recursive (3.35 of 55)
1. Parse RFC822 date (4 of 1)
2. Dynamic Image Uploading (5 of 1)
3. Spam Filter (0 of 0)
4. Is Multiple (0 of 0)
5. Base64 Encode / (0 of 0)
6. URL Encode / (0 of 0)
7. temp openbills (0 of 0)
8. Php Iban Validator (0 of 0)
9. Mysql Table Builder (0 of 0)
10. File size of (1.75 of 4)
11. Mail from your (1 of 1)
12. OddEven Class (0 of 0)
13. Detect if a (1 of 1)
14. MB CopyMCF-DIR :: (5 of 1)
15. Upper/Lower Case Accented (0 of 0)
16. Zodiac Signs (3 of 1)
17. Really useful code (2.5 of 2)
18. Calculate Central European (0 of 0)
19. Email Attachment (4 of 1)
20. ImageMagick Image Upload (0 of 0)
21. convert plain html (2 of 2)
22. Tag Builder (3.25 of 4)
23. Get Inserted ID (4.33 of 3)
24. Watermark An Image (3.33 of 3)
25. Check Prime Numbers (1.5 of 8)
2010-04-23 00:00:00