159  /  382
Справочник

ArrayAccess

Просмотров: 24230
Дата последнего изменения: 27.10.2020
Татьяна Старкова
Сложность урока:
4 уровень - сложно, требуется сосредоточиться, внимание деталям и точному следованию инструкции.
1
2
3
4
5
Недоступно в лицензиях:
Ограничений нет

Интерфейс доступа к объекту как к массиву может помочь обеспечить обратную совместимость при переходе с массивов на объекты:

$author = \Bitrix\Main\Test\Typography\AuthorTable::getByPrimary(17)->fetchObject();
		
echo $author['NAME'];
// вызов аналогичен методу $author->getName()

$author['NAME'] = 'New name';
// вызов аналогичен методу $author->setName('New name')

Что касается runtime полей, то в данном случае можно только считывать их значения, но не устанавливать:

$author = \Bitrix\Main\Test\Typography\AuthorTable::query()
	->registerRuntimeField(
		new \Bitrix\Main\Entity\ExpressionField('FULL_NAME', 'CONCAT(%s, " ", %s)', ['NAME', 'LAST_NAME'])
	)
	->addSelect('ID')
	->addSelect('FULL_NAME')
	->where('ID', 17)
	->fetchObject();

echo $author['FULL_NAME'];
// вызов аналогичен методу $author->get('FULL_NAME');

$author['FULL_NAME'] = 'New name';
// вызовет исключение


15
Курсы разработаны в компании «1С-Битрикс»

Если вы нашли неточность в тексте, непонятное объяснение, пожалуйста, сообщите нам об этом в комментариях.
Развернуть комментарии