传递给nms \ aclass :: __ construct()的参数1必须是一个实例 of nms \ stdClass,stdClass的实例给出
__construct()
函数看起来像public function __construct(stdClass $aclass)
我得到错误,我从全局命名空间传递stdClass的实例,而不是来自同一命名空间中的实例,
我也得到了解决方案:public function __construct(\stdClass $aclass)
但我没有得到的是为什么?我认为甚至不可能覆盖stdClass呢?那么\stdClass
和\nms\stdClass
之间有什么区别?
答案 0 :(得分:3)
当然可以覆盖命名空间内的stdClass
。
namespace Example;
class stdClass {
public function __construct() {
echo "Overridden!";
}
}
$global = new \stdClass();
$local = new stdClass;
输出:
Overridden!
因此,如果您需要原始文件,则需要使用/stdClass
全局命名空间。与/Exception
s非常相似。