<?php
namespace eMacros\Runtime\Type;
use eMacros\Runtime\GenericFunction;
class IsType extends GenericFunction {
/**
* Callback to invoke
* @var callable
*/
public $callback;
public function __construct($callback) {
$this->callback = $callback;
}
/**
* Determines if a value is of a given type
* Usage: (integer? 'hey') (string? _val) (null? _val1 _val2)
* Returns: boolean
* (non-PHPdoc)
* @see \eMacros\Runtime\GenericFunction::execute()
*/
public function execute(array $arguments) {
//check number of parameters
if (empty($arguments)) {
throw new \BadFunctionCallException("IsType: No arguments found.");
}
foreach ($arguments as $arg) {
if (call_user_func($this->callback, $arg) === false) {
return false;
}
}
return true;
}
}
?>
|