PHP将stdClass视为用户定义的类

时间:2018-07-26 05:12:09

标签: php

我正在使用

创建一个新的stdClass。
$usrobj=new stdClass();

它给了我这个错误

PHP Warning:  require_once(objects/User/stdClass.php): failed to open stream: No such file or directory in...

似乎php将stdClass视为用户定义的类

$db=new mysqli();

2 个答案:

答案 0 :(得分:2)

使用命名空间时会发生这种情况。例如:

<?php
namespace Foo\Bar;
$obj = new stdClass; // Fatal error: Uncaught Error: Class 'Foo\Bar\stdClass' not found

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

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

$usrobj=new \stdClass();
$db=new \mysqli();

答案 1 :(得分:0)

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

$o= new \stdClass();
$o->a = 'new object';

可以与mysql对象一起使用的东西。