⊗ppOpNsCU 101 of 107 menu

Каманда 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.

plidpteshi