Команда use и пространства имен в ООП в PHP

Пусть у нас есть следующий класс Data:

<?php namespace \Core\Admin; class Data { public function __construct($num) { } } ?>

Пусть также есть класс Page, создающий внутри себя объекты класса Data:

<?php namespace Users; class Page { public function __construct() { $data1 = new \Core\Admin\Data('1'); $data2 = new \Core\Admin\Data('2'); } } ?>

Как вы видите, оба наших класса находятся в совсем разных пространствах имен, поэтому вызовы класса Data упростить нельзя, подобно тому, как мы это делали в предыдущем уроке. Эти вызовы, однако, очень длинные и неудобные, так как в каждом вызове класса Data приходится указывать его длинное пространство имен.

Для решения подобной проблемы существует специальная команда use. С помощью этой команды достаточно один раз подключить класс по его полному имени, и после этого можно будет обращаться к этому классу просто по имени класса. Смотрите пример:

<?php namespace Users; use \Core\Admin\Data; // подключаем класс class Page extends Controller { public function __construct() { $data1 = new Data('1'); // вызываем просто по имени $data2 = new Data('2'); // вызываем просто по имени } } ?>

Упростите следующий код с использованием use:

<?php namespace Project; class Test { public function __construct() { // Создаем 3 объекта одного класса: $data1 = new \Core\Users\Data('user1'); $data2 = new \Core\Users\Data('user3'); $data3 = new \Core\Users\Data('user3'); } } ?>

Даны следующие классы:

<?php namespace Core\Admin; class Controller { } ?>
<?php namespace Users; class Page extends \Core\Admin\Controller { } ?>

Упростите код наследования класса, применив команду use.



Чат с GPT Компилятор