首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >把stdClass当作用户定义的类

问把stdClass当作用户定义的类
EN

Stack Overflow用户
提问于 2018-07-26 13:12:09
回答 2查看 196关注 0票数 1

我正在使用以下命令创建一个新的stdClass

代码语言:javascript
复制
$usrobj=new stdClass();

它给了我这个错误

代码语言:javascript
复制
PHP Warning:  require_once(objects/User/stdClass.php): failed to open stream: No such file or directory in...

似乎php把stdClass当作用户定义的类。

同样的事情也发生在

代码语言:javascript
复制
$db=new mysqli();
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-07-26 13:32:50

当您使用名称空间时,就会发生这种情况。例如:

代码语言:javascript
复制
<?php
namespace Foo\Bar;
$obj = new stdClass; // Fatal error: Uncaught Error: Class 'Foo\Bar\stdClass' not found

与自动加载器结合使用,当找不到该类时,自动加载器会尝试从objects/User/目录加载文件。

要使用任何全局类,您需要在类名之前放置一个\,以指定您尝试访问的是全局类,而不是当前命名空间中的类:

代码语言:javascript
复制
$usrobj=new \stdClass();
$db=new \mysqli();
票数 2
EN

Stack Overflow用户

发布于 2018-07-26 13:34:03

似乎是名称空间问题(与滥用PHP 5.3名称空间有关)。

代码语言:javascript
复制
$o= new \stdClass();
$o->a = 'new object';

与mysql对象使用相同的东西。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51531420

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档