php - 在 PHP 中为 stdClass 对象设置命名空间

标签 php object namespaces stdclass

有没有人碰巧知道是否可以在用户定义的 stdClass 对象上设置命名空间。

我想做的是将一个类的所有私有(private)属性以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-Object 的命名空间显式化?这可以通过任一方式完成

use \stdClass

$dataObj = new \stdClass();

顺便说一句。 - 不,一旦定义了类的命名空间,就无法更改它。

如果您需要从另一个类的私有(private)字段访问值,您可能需要检查 ReflectionProperty 内置类(参见 http://php.net/manual/en/reflectionproperty.getvalue.php)。

关于php - 在 PHP 中为 stdClass 对象设置命名空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9113930/

相关文章:

vb.net - 添加新项目时自动添加命名空间

php - 无法实例化邮件功能。为什么会出现这个错误

phpcurl 获取代理

php - 从 json api 到 mysql

php - Opencart 2.1如何在产品表单中设置默认类别?

javascript - 如何通过 JavaScript 中的属性获取对象的索引?

c++ - Visual Studio 和在 C++ 中使用类工厂自动创建对象

javascript - 如何在Javascript中从数组加载所有图像?

jquery - 使用 jQuery 扩展命名空间有多糟糕?

C++ 如何在可移植代码中处理 tr1 和非 tr1 命名空间?