. */ namespace Doctrine\ORM\Query; /** * Define a Query Parameter * * @link www.doctrine-project.org * @since 2.3 * @author Guilherme Blanco */ class Parameter { /** * @var string Parameter name */ private $name; /** * @var mixed Parameter value */ private $value; /** * @var mixed Parameter type */ private $type; /** * Constructor. * * @param string $name Parameter name * @param mixed $value Parameter value * @param mixed $type Parameter type */ public function __construct($name, $value, $type = null) { $this->name = trim($name, ':'); $this->setValue($value, $type); } /** * Retrieve the Parameter name. * * @return string */ public function getName() { return $this->name; } /** * Retrieve the Parameter value. * * @return mixed */ public function getValue() { return $this->value; } /** * Retrieve the Parameter type. * * @return mixed */ public function getType() { return $this->type; } /** * Define the Parameter value. * * @param mixed $value Parameter value * @param mixed $type Parameter type */ public function setValue($value, $type = null) { $this->value = $value; $this->type = $type ?: ParameterTypeInferer::inferType($value); } }