我有一个从数据库初始化的类层次结构。我在一个共同的项目基类中使用带有数组的__get()和__set()来支持不同数量的属性。一个继承自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()的功能,还是有更简单的方法?
如何在不出现错误的情况下测试动态属性的存在?