208 похожих чатов

Всем привет. После установки последних обновлений битрикса появилась ошибка при выборке

разделов инфоблока через такое апи
\Bitrix\Iblock\Model\Section::compileEntityByIblock($arParams['IBLOCK_ID']);

Как оказалось необходимо приводить к типу данных $arParams['IBLOCK_ID']:
\Bitrix\Iblock\Model\Section::compileEntityByIblock((int)$arParams['IBLOCK_ID']);

Хотя раньше работало. Никто не знает почему в ядре они перестали приводить к типу данных номер инфоблока? Может это было сделано специально для чего-то?
Этот вопрос скорее всего к техподу битрикса. Может кому пригодится.

9 ответов

26 просмотров

Полистайте выше уже тоже словили. Думаю починят относительно скоро

Владислав-Vlad Автор вопроса
Anton Vaniushin
Полистайте выше уже тоже словили. Думаю починят от...

Спасибо. Но я весь чат не успеваю читать по времени. А то что читал, не встречал этого.

Там усложнилась логика приведения входящей переменнной. Теперь на вход принимается как строка, инт, так и инстанс Iblock. Но если передаётся строка, то до проверки is_numeric заходит в проверку is_string где предполагается что если передаётся стринг, то это код апи. И пытается найти инфоблок по коду апи и зачем-то переопределяется входящая переменная результатом этого поиска. Логично что не будет существовать инфоблока с апи кодом равным айдишнику. Следующие проверки проваливаются потому что теперь входящая переменная null. И собственно поэтому возвращает null в основной функции.

Владислав-Vlad Автор вопроса
Артём Листиков
Там усложнилась логика приведения входящей перемен...

Отлично. Вообще по хорошему всегда лучше приводить к типам, но php нас разбаловал в этом.

Владислав Vlad
Отлично. Вообще по хорошему всегда лучше приводить...

По хорошему не просто приводить, а строго типизировать в самой функции. php 8 теперь позволяет указывать несколько типов для одного аргумента.

Артём Листиков
По хорошему не просто приводить, а строго типизиро...

Но учитывая что раньше у этих функций типизации не существовало - внедрение типов тоже обернётся проблемами

Владислав-Vlad Автор вопроса
Артём Листиков
Но учитывая что раньше у этих функций типизации не...

Да. Перевод на php 8 будет проблематичным. Да и там вроде как добавляется обязательно <?php вместо <? (исключение если выводится сразу что-то из переменной например)

Владислав Vlad
Отлично. Вообще по хорошему всегда лучше приводить...

В тп напишите. Чем больше обращений, тем быстрее выпуск фикса клиентам.

Артём Листиков
По хорошему не просто приводить, а строго типизиро...

(задумчиво) в новом коде ?тип мне пока хватает...

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

Обсуждают сегодня

Мужики и девушки, привет) в Вelphi xe7 в настройках во вкладке "Editor Options" далее " Color" есть список: "Elements", открыв который мы можем настраивать отображение разных...
Kraszx
14
Добрый вечер. Есть вопрос, а может и предложение. Был у меня диалог в другой группе о делфи и я задался вопросом: "А нельзя ли в делфи цвет //коментария и {комментария} сде...
Kraszx
24
как быть с принтером? такой подход прокатит?
zamtmn
12
Всем привет! Подскажи, пожалуйста, как передать в TComboBox сразу значение и id записи. На Delphi я делал так: ComboBox1.Items.AddObject('Какое-то значение', Pointer(id запис...
Евгений
13
Мдя, прикол, боевая сборка запускается (именно под отладчиком) после F9 примерно полторы минуты (97 секунд если быть точным). Начал копать - проблема детектится сразу - зависа...
Александр (Rouse_) Багель
38
А вот это что за конструкция? Вернее, она тут нафига?
Serjone
10
Привет. Подскажите, как правильно сматчить лист фиксированного размера, чтобы компилятор не говорил мне о неполном паттерне? Допустим что-то такое [x', y'] = sort [x, y]?
Arseny
8
Здравствуйте, вопрос по структурам данных. Были у вас случаи, когда пришлось писать деревья или двунаправленные списки?
/ /
50
Товарищи, кто работа с iphelper? Или может я в самой логике ошибки фигачу, не пойму.... var ifTable : PMIB_IFTABLE; size, corSize: DWORD; Buffer ...
Warfarellen
4
Мужики. привет) в Вelphi xe7 в настройках во вкладке "Editor Options" далее " Color" есть список: "Elements", открыв который мы можем настраивать отображение разных элементов...
Kraszx
2
Карта сайта