| 
<?phpnamespace eMacros\Runtime\Type;
 
 use eMacros\Runtime\GenericFunction;
 
 class CastToType extends GenericFunction {
 /**
 * Expected type
 * @var string
 */
 public $type;
 
 public function __construct($type) {
 $this->type = $type;
 }
 
 /**
 * Casts a value to a especified type
 * Usage: (as-string 2)
 * Returns: the casted value
 * (non-PHPdoc)
 * @see \eMacros\Runtime\GenericFunction::execute()
 */
 public function execute(array $arguments) {
 if (empty($arguments)) {
 throw new \BadFunctionCallException("CastToType: No parameters found.");
 }
 
 $value = $arguments[0];
 
 switch ($this->type) {
 case 'bool':
 case 'boolean':
 $value = (bool) $value;
 break;
 
 case 'int':
 case 'integer':
 $value = (int) $value;
 break;
 
 case 'float':
 case 'double':
 case 'real':
 $value = (double) $value;
 break;
 
 case 'string':
 $value = (string) $value;
 break;
 
 case 'array':
 $value = (array) $value;
 break;
 
 case 'object':
 $value = (object) $value;
 break;
 
 case 'unset':
 case 'null':
 $value = null;
 break;
 
 case 'binary':
 $value = (binary) $value;
 break;
 }
 
 return $value;
 }
 }
 ?>
 |