<?php
namespace eMacros;
class Literal implements Expression {
/**
* Literal value
* @var mixed
*/
public $value;
public function __construct($value) {
if (!in_array(gettype($value), array('integer', 'double', 'string'))) {
throw new \UnexpectedValueException(sprintf("Literal: Unexpected value of type '%s'.", gettype($value)));
}
$this->value = $value;
}
public function evaluate(Scope $scope) {
return $this->value;
}
public function isInteger() {
return is_int($this->value);
}
public function isReal() {
return is_float($this->value);
}
public function isString() {
return is_string($this->value);
}
public function __toString() {
return var_export($this->value, true);
}
}
?>
|