⊗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.

Српски
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Користимо колачиће за рад сајта, аналитику и персонализацију. Обрада података се врши у складу са Политиком приватности.
прихвати све подеси одбиј