• Модуль: main
  • Путь к файлу: ~/bitrix/modules/main/lib/annotations/annotationreader.php
  • Класс: BitrixMainAnnotationsAnnotationReader
  • Вызов: AnnotationReader::extractParameter
private function extractParameter($valueInString)
{
	if (!$valueInString)
	{
		return null;
	}

	$value = null;

	if ($valueInString === 'false')
	{
		$value = false;
	}
	elseif ($valueInString === 'true')
	{
		$value = true;
	}
	elseif (is_numeric($valueInString))
	{
		if ($valueInString === (string)(int)$valueInString)
		{
			$value = (int)$valueInString;
		}
		else
		{
			$value = (float)$valueInString;
		}
	}
	elseif (mb_substr($valueInString, 0, 1) === '[' && mb_substr($valueInString, -1, 1) === ']')
	{
		$list = array();
		$valueInString = mb_substr($valueInString, 1, -1);
		foreach (explode(',', $valueInString) as $listValue)
		{
			$listValue = trim($listValue);
			if (!$listValue)
			{
				continue;
			}

			$list[] = $this->extractParameter($listValue);
		}

		$value = $list;
	}
	else
	{
		$value = trim($valueInString, '"');
	}

	return $value;
}