MySQLi在没有命名空间和类外的类中工作正常。
我最近开始使用命名空间,现在我偶然发现了类似下面的代码:
namespace Project;
class ProjectClass{
public static function ProjectClassFunction{
$db = new mysql(data, data, data, data);
}
}
然而,它向我报告了一条消息
“致命错误:未找到类'Project \ mysqli'”
我的问题是;如何在使用命名空间的类中使用mysqli?
答案 0 :(得分:35)
默认情况下,PHP会尝试从当前命名空间加载类。请参阅全局命名空间中的类:
$db = new \mysqli(/* ... */);
在引用不同命名空间中的类时,这与您要做的事情相同:
$foo = new \Some\Namespace\Foo();
请注意,如果您不使用开头的反斜杠,PHP会尝试相对于您当前的命名空间加载该类。以下代码将在命名空间Project\Some\Namespace
中查找名为Foo
的类:
namespace Project;
$foo = new Some\Namespace\Foo();
或者,您可以显式导入名称空间并保存自己的歧义:
namespace Project;
use Mysqli;
class ProjectClass
{
public static function ProjectClassFunction()
{
$db = new Mysqli(/* ... */);
}
}