parseValue($source, $value)) { throw new \InvalidArgumentException(sprintf('Invalid value source "%s".', $source)); } return $value; } /** * Converts a PHP value to a Sass value * * The returned value is guaranteed to be supported by the * Compiler methods for registering custom variables. No other * guarantee about it is provided. It should be considered * opaque values by the caller. * * @param mixed $value * * @return mixed */ public static function fromPhp($value) { if ($value instanceof Number) { return $value; } if (is_array($value) && isset($value[0]) && \in_array($value[0], [Type::T_NULL, Type::T_COLOR, Type::T_KEYWORD, Type::T_LIST, Type::T_MAP, Type::T_STRING])) { return $value; } if ($value === null) { return Compiler::$null; } if ($value === true) { return Compiler::$true; } if ($value === false) { return Compiler::$false; } if ($value === '') { return Compiler::$emptyString; } if (\is_int($value) || \is_float($value)) { return new Number($value, ''); } if (\is_string($value)) { return [Type::T_STRING, '"', [$value]]; } throw new \InvalidArgumentException(sprintf('Cannot convert the value of type "%s" to a Sass value.', gettype($value))); } }