有人知道是否可以在用户定义的stdClass对象上设置命名空间吗。
我想做的是以getter方法的形式将类的所有私有属性作为对象返回。
我找到了一个可能的解决方案,我可以做这样的事情;
public function getDataItems() {
$dataObj = new stdClass;
$dataObj->image_id = $this->image_id;
$dataObj->image_name = $this->image_name;
$dataObj->name = $this->name;
$dataObj->email = $this->email;
$dataObj->company = $this->company;
return $dataObj;
}
不过,我遇到的唯一问题是,这个函数所在的类使用了一个名称空间,因此我需要以某种方式将相同的名称空间分配给这个$dataObj对象。
有人知道我该怎么做吗?
也许您想反过来做,并使stdClass对象的命名空间显式?这可以通过
use 'stdClass
或
$dataObj = new 'stdClass();
顺便说一下不,一旦定义了类的名称空间,就不可能更改它。
如果需要访问另一个类的私有字段中的值,您可能需要检查ReflectionProperty
内置类(请参阅http://php.net/manual/en/reflectionproperty.getvalue.php)。