Ski*_*les 18 php namespaces object stdclass
有人会碰巧知道是否可以在用户定义的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;
}
Run Code Online (Sandbox Code Playgroud)
我唯一的问题是这个函数所在的类是使用命名空间,因此我需要以某种方式为这个$ dataObj对象分配相同的命名空间.
有谁知道我怎么做这个或者甚至可能吗?
Mar*_*fuß 53
也许你想反过来这样做,并使stdClass-Object的命名空间显式?这可以通过其中之一完成
use \stdClass
Run Code Online (Sandbox Code Playgroud)
要么
$dataObj = new \stdClass();
Run Code Online (Sandbox Code Playgroud)
顺便说一句. - 不,一旦定义了类,就无法更改它的名称空间.
ReflectionProperty如果需要从另一个类的私有字段访问值,您可能需要检查内置类(请参阅http://php.net/manual/en/reflectionproperty.getvalue.php).
| 归档时间: |
|
| 查看次数: |
21827 次 |
| 最近记录: |