Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/251.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在PHP中设置stdClass对象的命名空间_Php_Object_Namespaces_Stdclass - Fatal编程技术网

在PHP中设置stdClass对象的命名空间

在PHP中设置stdClass对象的命名空间,php,object,namespaces,stdclass,Php,Object,Namespaces,Stdclass,是否有人知道是否可以在用户定义的stdClass对象上设置名称空间 我想做的是以getter方法的形式将类的所有私有属性作为对象返回 我找到了一个可能的解决办法,我可以做这样的事情 public function getDataItems() { $dataObj = new stdClass; $dataObj->image_id = $this->image_id; $dataObj->image_name = $this->image_name;

是否有人知道是否可以在用户定义的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

顺便说一句-不,一旦定义了类,就不可能更改它的名称空间


如果需要访问另一个类的私有字段中的值,则可能需要检查
ReflectionProperty
内置类(请参见)。

因此,如果上述方法所在的类使用命名空间foo;我不能让$dataObj使用相同的名称空间,那么?$dataObj=new\stdClass();成功了!谢谢你,marvesmith!:)名称空间上的PHP文档:
$dataObj = new \stdClass();