Как использовать MySQLi в пространстве имен

MySQLi отлично работает внутри класса без пространства имен и вне класса.

Недавно я начал использовать пространство имен, и теперь я наткнулся на код, похожий на следующий:

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

Однако он сообщает мне сообщение с сообщением

«Неустранимая ошибка: проект класса» \ mysqli «не найден»

Мой вопрос: Как использовать mysqli внутри класса, который использует пространство имен?

По умолчанию 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(/* ... */); } }