Разница между Fetch, GetNext и GetNextElement
Fetch()
Метод Fetch()
выводит данные как есть, без преобразований. Также данный метод не преобразует ссылки на страницу элемента, что уменьшает запросы к базе данных.
Рекомендуется использовать, когда надо просто вывести элементы без ссылок на их страницу.
Если данные не имеют свой URL (логотипы, бренды, статистика), то их рекомендуется создавать в Хайлоад (Highload) блоках.
getNext()
Метод getNext()
выполняет для каждого свойства функцию htmlspecialchars()
, при этом изначальное свойство хранится с тем же именем, но перед ним указан символ «~».
$res = CIBlockElement::GetList(array(), array('IBLOCK_ID' => 2)); while ($element = $res->getNext()) { $element['NAME']; // Тег <h1> $element['~NAME']; // Тег <h1> }
Метод getNext()
также возвращает ссылку на страницу элемента по шаблону в настройках инфоблока (для этого делается дополнительный запрос в базу данных для каждого элемента).
GetNextElement()
Метод GetNextElement()
работает также, как и метод getNext()
, только также выбирает все пользовательские свойства элемента.
$res = CIBlockElement::GetList(array(), array('IBLOCK_ID' => 2)); while ($element = $res->GetNextElement()) { $element->GetFields(); // Свойства элемента по умолчанию $element->GetProperties(); // Пользовательские свойства элемента }
Поддержать автора