<?php
namespace eMacros\Runtime\Type;
use eMacros\Runtime\GenericFunction;
class IsA extends GenericFunction {
/**
* Determines if a given value is an instance of a specified class
* Usage: (is-a "ArrayObject" _value)
* Returns: boolean
* (non-PHPdoc)
* @see \eMacros\Runtime\GenericFunction::execute()
*/
public function execute(array $arguments) {
if (empty($arguments)) {
throw new \BadFunctionCallException("IsA: No parameters found.");
}
if (!array_key_exists(1, $arguments)) {
throw new \BadFunctionCallException("IsA: No classname has been specified.");
}
if (!is_string($arguments[1])) {
throw new \InvalidArgumentException(sprintf("IsA: Expected a value of type string as second argument, %s found instead.", gettype($arguments[1])));
}
if (!is_object($arguments[0])) {
return false;
}
return is_a($arguments[0], $arguments[1]);
}
}
?>
|