<?php
namespace 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;
}
}
?>
|