如何在命名空间中使用 MySQLi

2022-08-30 17:04:13

MySQLi在没有命名空间的类和类外部工作正常。

我最近开始使用命名空间,现在我偶然发现了一个类似于以下内容的代码:

 namespace Project;

 class ProjectClass{

      public static function ProjectClassFunction{
          $db = new mysql(data, data, data, data);
      }

 }

但是,它会向我报告一条消息

“致命错误:找不到类'项目\mysqli'”

如何在使用命名空间的类中使用mysqli?


答案 1

默认情况下,PHP 将尝试从当前命名空间加载类。引用全局命名空间中的类:

$db = new \mysqli(/* ... */);

这与引用不同命名空间中的类时执行的操作相同:

$foo = new \Some\Namespace\Foo();

请注意,如果省略了开头的反斜杠,PHP 将尝试相对于当前命名空间加载该类。下面的代码将在命名空间中查找名为 的类:Project\Some\NamespaceFoo

namespace Project;
$foo = new Some\Namespace\Foo();

或者,您可以显式导入命名空间并节省自己的歧义:

namespace Project;

use Mysqli;

class ProjectClass
{
    public static function ProjectClassFunction()
    {
        $db = new Mysqli(/* ... */);
    }
}

答案 2

推荐