Дата последнего изменения: 10.08.2020
Перед подключением компонента ко всем значениям параметров применяется функция htmlspecialcharsEx. Исходные значения параметров сохраняются в этом же массиве с теми же ключами, но с префиксом ~. Например, $arParams["NAME"]
- входной параметр, к которому применена функция htmlspecialcharsEx, а $arParams["~NAME"]
- исходный входной параметр.
Переменная $arParams
является псевдонимом для члена класса компонента, поэтому все изменения этой переменной отражаются и на этом члене класса. В начале кода компонента должна быть произведена проверка входных параметров, инициализация не установленных параметров, приведение к нужному типу (например, IntVal()). Все эти изменения входных параметров будут доступны и в шаблоне. То есть параметры будут там уже проверенными и максимально безопасными. Дублирование подготовки параметров в шаблоне компонента не требуется.
Переменная $arResult
является псевдонимом для члена класса компонента, поэтому все изменения этой переменной отражаются и на этом члене класса. Значит явно передавать в шаблон эту переменную не нужно, это сделают внутренние механизмы класса компонента.
Ссылки (references) в PHP служат для того, чтобы к одним и тем же данным можно было обратиться по разным именам. Если переменные $arParams
и $arResult
изменены некоторым образом в коде компонента, то они будут доступны измененными и в шаблоне.
При этом нужно учитывать следующие нюансы:
$arParams = & $arSomeArray;
$arParams
будет отвязана от члена класса компонента и привязана к массиву $arSomeArray
. В этом случае дальнейшие изменения $arParams
не попадут в шаблон компонента.unset($arParams);
$arParams
и соответствующим членом класса компонента.