public function setValue($value)
    {
        if ($value instanceof PhpVariable || Utils::isScalar($value)) {
            $this->value = $value;
        } else {
            $msg = "The 'value' argument must be a PHP scalar value, a PhpVariable object or null, '" . gettype($value) . "' given.";
            throw new InvalidArgumentException($msg);
        }
    }