@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 все работает
  • Вопрос задан
  • 325 просмотров
Решения вопроса 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', '');
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы