У меня есть иерархия классов, которые инициализируются из базы данных.Я использую __get () и __set () с массивом в общем базовом классе Item для поддержки различного количества свойств.Один класс, полученный из Item, UserProfile, используется для хранения пользовательских данных.В моей базе данных есть таблица телефонных номеров с отношением один-ко-многим к пользовательской таблице для хранения нескольких телефонных номеров для одного пользователя.Если есть мобильный телефон, то у объекта UserProfile есть мобильное поле.То же самое для дома и бизнеса.Если число не существует, свойства не существует.
Проблема возникает, когда я хочу проверить наличие этих свойств.когда я использую код вроде
if (isset($clientData->home_phone))
{
$this->startElement('phone');
$this->writeAttribute('phone_number_type','home');
$this->writeRaw($clientData->home_phone);
$this->endElement();
}
Функция всегда возвращает false.Я пытался использовать скобки, чтобы сказать php, чтобы сначала получить переменную, но я только что получил ошибки.Нужна ли мне специальная функция attributeExists () для имитации функциональности isset (), или есть более простой подход?
Как я могу проверить наличие динамического свойства без какой-либо ошибки?