Страница 1 из 1

php 8.2 Предупреждения при использовании items::insert();

Добавлено: 16 июл 2024, 08:01
Romiros
Добрый день!

После переноса сущностей на xamp php 8.2

При использовании в коде функции
items::insert($entity_id, $data_1);
начинает выдавать предупреждения

Код: Выделить всё

Warning: Undefined array key 0 in C:\xampp\htdocs\rukovoditel\includes\classes\items\items.php on line 1727

Warning: Trying to access array offset on value of type null in C:\xampp\htdocs\rukovoditel\includes\classes\items\items.php on line 1727

Deprecated: strlen(): Passing null to parameter #1 ($string) of type string is deprecated in C:\xampp\htdocs\rukovoditel\includes\classes\items\items.php on line 1729
не как не могу понять как это исправить

Подскажите что можно сделать.

П.С. Вот что нашел в интернете
Ошибки указывают на проблемы с доступом к элементам массива и использованием функции strlen() с параметром null, что является устаревшим в PHP 8.0 и выше.

Чтобы исправить эти ошибки, вам нужно убедиться, что вы обращаетесь к существующим элементам массива и что параметры для функций не являются null.

Re: php 8.2 Предупреждения при использовании items::insert();

Добавлено: 16 июл 2024, 11:14
Romiros
Покопался немного, и пришел в выводу что это предупреждение появляется всегда когда я в data[] использую поле parent_id.

Код: Выделить всё

      $data_1 = [
        'parent_id'=> $id_new_task,				
        'parent_item_id'=> $item_id ,				
        'field_1599' => $tip_step,					
        'field_1600' => $row['field_1612'],			
        'field_1601' => '4276', 
        'field_1602' => $db_formatted_d1,
        'field_1603' => $db_formatted_d2,
        'field_1614' => 'false',			
        'field_1710' => $row['field_1793'] ?? '',		
        'field_1800' => $row['field_1613'] ?? '',			
        'field_1714' => $row['field_1956'] ?? 0,			
        'field_1957' => $row['field_1953'] ?? 0,			
        'field_1959' => $row['field_1958'] ?? '',			
        'field_1960' => $row['field_1961'] ?? '',			
        'field_1963' => $row['field_1962'] ?? '',			
        'field_1992' => $row['field_1990'] ?? 0,			
        'field_1993' => $row['field_1991'] ?? 0,			
        'created_by' => $new_created_by
      ];
      
     items::insert($entity_id, $data_1);
Если код оставляю таким то при каждом его выполнении выпадают предупреждения.

Если я комментирую строку

Код: Выделить всё

//       'parent_id'=> $id_new_task,			
то предупреждений нет.

Подскажите как исправить?

Re: php 8.2 Предупреждения при использовании items::insert();

Добавлено: 17 июл 2024, 07:44
support
Проблему обнаружил. Файл из архива замените в includes\classes\items\
Сообщите результат.

Re: php 8.2 Предупреждения при использовании items::insert();

Добавлено: 22 июл 2024, 11:39
Romiros
Добрый день!

Да всё работает благодарю.