Я извлекаю информацию из базы данных, которая поступает с одним полем с именем userNAME. Я использую
$query->getResultObject()
(https://codeigniter4.github.io/userguide/database/results.html#result -arrays ), поэтому я получаю массив объектов. Каждый из этих объектов содержит «;» разделенный список строк в качестве значения, хранящегося в этом поле userNAME. Я обрабатываю это значение в массив (https://www.php.net/manual/en/function.explode.php) и сохраняю результирующий массив в поле.
Поэтому в итоге получается набор объектов, каждый из которых имеет $ Object-> userNAME в виде массива с количеством ключей, один из которых «полный»; Поэтому, чтобы получить доступ к полному имени, я использую
$Object->userNAME['full'];
Это работает для меня в течение многих лет в CI3. Я перехожу к CI4, и проблема в том, что теперь в CI4 я получаю ошибку
Неопределенное свойство: stdClass :: $ userNAME
, когда я выдаю
$Object->userNAME['full'];
Я предполагал, что проблема в объекте, поэтому я преобразовал все операции в массив, поэтому доступ к «полному» имени теперь становится
$Object['userNAME']['full'];
только для устранения ошибки Неопределенный индекс: userNAME
Несколько двух странных наблюдений для меня
Когда я выдаю
echo $ Object ['userNAME'] [' full '];
или
echo $Object->userNAME['full'];
Я получаю сообщение об ошибке Неопределенный индекс: userNAME и Неопределенное свойство: stdClass :: $ userNAME соответственно, но все равно получите ожидаемый результат!
При использовании массива я получаю вывод 1, когда выдаю следующее! (https://www.php.net/manual/en/function.array-key-exists.php)
echo array_key_exists ('userNAME', $ Object); // вывод 1
В настоящее время я просто подавляю сообщение об ошибке как
@$Object['userNAME']['full'];
или
@echo $Object->userNAME['full'];
Я застрял, пожалуйста, помогите.