@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 все работает
  • Вопрос задан
  • 71 просмотр
Решения вопроса 3
DevMan
@DevMan Куратор тега PHP
потому что в объявленном неймспейсе нет такого класса.
нужно либо указывать для него полный неймспейс (в данном случае это корневой), либо импортировать через use.

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

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

Войти через центр авторизации
Похожие вопросы
РосТендер Москва
от 130 000 до 150 000 ₽
Amigoweb Магнитогорск
от 40 000 до 70 000 ₽
ЧИТАЙ-ГОРОД Москва
от 140 000 до 210 000 ₽
17 февр. 2020, в 00:30
1500 руб./за проект
16 февр. 2020, в 22:28
2000 руб./за проект
16 февр. 2020, в 22:03
1200 руб./в час