我有一个从数据库初始化的类的层次结构。我正在使用 __get() 和 __set() 以及公共 Item 基类中的数组来支持不同数量的属性。从 Item 派生的一个类 UserProfile 用于存储用户数据。我的数据库中有一个电话号码表,它与用户表具有一对多的关系,用于存储一个用户的多个电话号码。如果有手机,那么 UserProfile 对象有一个 mobile 字段。家庭和企业都一样。如果不存在数字,则不存在属性。
当我想测试这些属性是否存在时,问题就来了。当我使用类似的代码时
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() 的功能,还是有更直接的方法?
如何在没有某种错误的情况下测试动态属性的存在?