@Karpkarp

Почему не работает код с namespace?

при попытке var_dump этого кода
namespace Model;

class Db {

	protected static $connection;

	protected function __construct() {}
	protected function __clone() {}

	public static function Connect() {
		return self::$connection = new PDO('mysql:host=localhost;dbname=trvlblog', 'root', '');
	}

}

$a = Db::Connect();
var_dump($a);


Появляется ошибка:
Fatal error: Uncaught Error: Class 'Model\PDO' not found in C:\PHP\OSPanel\domains\trvlblog\Model\Db.php:13 Stack trace: #0 C:\PHP\OSPanel\domains\trvlblog\Model\Db.php(18): Model\Db::Connect() #1 {main} thrown in C:\PHP\OSPanel\domains\trvlblog\Model\Db.php on line 13

Когда убираешь namespace все работает
  • Вопрос задан
  • 316 просмотров
Решения вопроса 3
DevMan
@DevMan
потому что в объявленном неймспейсе нет такого класса.
нужно либо указывать для него полный неймспейс (в данном случае это корневой), либо импортировать через use.

https://www.php.net/manual/ru/language.namespaces....
Ответ написан
Комментировать
colonel
@colonel
Разработчик PHP, Laravel
\PDO
Ответ написан
Комментировать
slo_nik
@slo_nik Куратор тега PHP
Добрый вечер.
Поставьте слеш перед PDO
return self::$connection = new \PDO('mysql:host=localhost;dbname=trvlblog', 'root', '');
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
YCLIENTS Москва
от 200 000 до 350 000 ₽
Ведисофт Екатеринбург
от 25 000 ₽
ИТЦ Аусферр Магнитогорск
от 100 000 до 160 000 ₽
26 апр. 2024, в 18:27
200000 руб./за проект
26 апр. 2024, в 18:24
80000 руб./за проект
26 апр. 2024, в 18:00
500 руб./за проект