@MyQuestion
junior-middle fullstack

1c Bitrix: почему функции не видят $arResult?

Добрый день!

Не пойму, почему функции не видят arResult, если внутри функции объявить переменную как global?

function getRegion()
  {
    global $arResult;
    return $arResult['CURRENT_REGION']['NAME'];
  }


Я пытаюсь получить регион, на странице шаблона карточки товара. Для этого я пытаюсь создать функцию которая добавлялась бы в моё окружение и возвращала бы значение региона.

Сам компонент я вызываю так
echo "<pre style='display:none'>";
global $arTheme;
$frame = new \Bitrix\Main\Page\FrameHelper('header-regionality-block');
$frame->begin();
$APPLICATION->IncludeComponent(
  "aspro:regionality.list.next",
  "get_region",
  array()
);

$frame->end();
var_dump(getRegion());
echo "</pre>";


upd:
И я не могу передавать arResult через параметры, потом что вызывая функцию, я передаю arResult из другого окружения, в котором нет нужных мне значений. Мне нужен result, другого компонента.
  • Вопрос задан
  • 135 просмотров
Решения вопроса 1
@MyQuestion Автор вопроса
junior-middle fullstack
Если кому интересно, решил проблему так:
global $thisRegion;
  $thisRegion = $arResult['CURRENT_REGION']['NAME'];
  function getRegion()
  {
    global $thisRegion;
    return $thisRegion;
  }


Просто сохранил значение в переменную. Почему так же нельзя сделать с $arResult, я до сих пор не понимаю. И боюсь, что душные люди, мне не ответят.

Что касается регионов, оказывается есть замечательное решение в самом модуле региональности битрикс, достаточно просто добавить в текстовый контент тег '#city#'
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы