Scripts

Cast class

Hele simpele class om strings te casten. Gebruik V1.1: V 1.0 initial release V 1.1 maakt nu gebruik van pass by reference (Jelmer) TODO: momenteel gebruik je het als: $string = Cast::string($string); Wat ik wil is dat Cast::string($string); $string meteen cast naar een string NOT A BUG!: return (version_compare(PHP_VERSION, '6.0.0dev', '>=')) ? (binary) sprintf('%b', $input) : (int) sprintf('%b', $input); Weet je zeker dat je php 5 gebruikt, verander het dan naar: return (int) sprintf('%b', $input); Weet je zeker dat je php 6 gebruik, verander het dan naar: return (binary) sprintf('%b', $input); Voor optimale snelheid. Bied je het aan in een systeem zoals ik, en je weet niet wat voor versie je klant heeft, laat het dan zo. Of het werkt in php 4 ? NEE!

cast-class
<?php

/**
 * Cast class
 * 
 * @author    iltar van der berg
 * @version   1.1
 * @name      Cast
 */

/**
 * Class to Cast var types to another
 */
class Cast
{
	/**
	 * cast to string
	 *
	 * @param mixed $input
	 * @return string
	 */
	static public function string(&$input)
	{
		return $input = (string) sprintf('%s', $input);
	}
	
	/**
	 * cast to integer
	 *
	 * @param mixed $input
	 * @return int
	 */
	static public function int(&$input)
	{
		return $input = (int) sprintf('%d', $input);
	}
	
	/**
	 * cast to float
	 *
	 * @param mixed $input
	 * @return float
	 */
	static public function float(&$input)
	{
		return $input = (float) sprintf('%.F', $input);
	}
	
	/**
	 * cast to scientific
	 *
	 * @param mixed $input
	 * @return double
	 */
	static public function scientific(&$input)
	{
		return $input = (double) sprintf('%.e', $input);
	}
	
	/**
	 * cast to binary
	 *
	 * @param mixed $input
	 * @return int
	 */
	static public function binary(&$input)
	{
		return $input = (version_compare(PHP_VERSION, '6.0.0dev', '>='))
				? (binary) sprintf('%b', $input) 
				: (int) sprintf('%b', $input);
	}
	
	/**
	 * cast to hexadecimal
	 *
	 * @param mixed $input
	 * @return int
	 */
	static public function hexadecimal(&$input)
	{
		return $input = sprintf('%X', $input);
	}
	
	/**
	 * Cast to boolean
	 *
	 * @param mixed $input
	 * @return boolean
	 */
	static public function bool(&$input)
	{
		return $input = (bool) $input;
	}
	
	/**
	 * Cast to array
	 *
	 * @param mixed $input
	 * @return array
	 */
	static public function _array(&$input)
	{
		return $input = (array) $input;
	}
}

?>

Reacties

0
Nog geen reacties.