TGViewer
PHP | Вопросы собесов PHP | Вопросы собесов @easy_php_ru · 2.31K subscribers
Post #2397 300
🤔 Для чего нужно пространство имен в PHP?

Пространства имён (namespace) в PHP используются для разделения кода и предотвращения конфликтов имён классов, функций и констант.

🚩Почему нужны `namespace`?

Избегают конфликтов имён (если два разных файла объявляют одинаковые классы).
Упрощают организацию кода (структура похожа на файловую систему).
Работают с автозагрузкой (PSR-4) – Composer использует namespace для загрузки файлов.

🚩Пример использования `namespace`

Без пространства имён – конфликт классов
// Файл: models/User.php
class User {
public function getRole() {
return "Пользователь";
}
}

// Файл: controllers/User.php
class User {
public function getRole() {
return "Администратор";
}
}

// Ошибка! PHP не знает, какой User использовать.
$user = new User();


С namespace – классы разделены
// Файл: models/User.php
namespace App\Models;

class User {
public function getRole() {
return "Пользователь";
}
}

// Файл: controllers/User.php
namespace App\Controllers;

class User {
public function getRole() {
return "Администратор";
}
}

// Используем классы с указанием namespace
$modelUser = new App\Models\User();
echo $modelUser->getRole(); // ✅ "Пользователь"

$controllerUser = new App\Controllers\User();
echo $controllerUser->getRole(); // ✅ "Администратор"


🟠Импорт (`use`) – сокращает длинные пути
Вместо длинных App\Models\User, можно импортировать
use App\Models\User;

$user = new User(); // PHP понимает, что это App\Models\User


🟠Работа с функциями и константами
Пространства имён работают не только с классами, но и с функциями и константами.
namespace Utils;

function hello() {
return "Привет!";
}

echo hello(); // ✅ "Привет!"
echo \Utils\hello(); // ✅ "Привет!" (полный путь)


Ставь 👍 и забирай 📚 Базу знаний
More from @easy_php_ru
  1. Oct 10, 2026🤔 Что такое агрегатные функции? Агрегатные функции в SQL и других языках обработки данных…
  2. Oct 9, 2026🤔 Как настроить autoload через Composer? Composer предоставляет механизм автоматической з…
  3. Oct 9, 2026🤔 Какое отличие у протоколов tcp и udp? Это два основных транспортных протокола в интерне…
  4. Oct 8, 2026🤔 Есть ли какое-то различие между одинарными и двойными кавычками? - В большинстве языков…
  5. Oct 7, 2026🤔 В каких случаях используют индексы? Индексы в базах данных используются для ускорения о…
  6. Oct 7, 2026🤔 В чем преимущество фасада? Фасад (Facade) в PHP — это паттерн проектирования, который у…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →