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(/* ... */); } }