⊗ppOpNsCA 104 of 107 menu

Псевдоними на класове за именни пространства в ООП в PHP

Нека имаме два класа Data, принадлежащи на различни именни пространства. Нека в някакъв клас ни трябват обекти и от двата класа:

<?php namespace Project; class Test { public function __construct() { $data1 = new \Core\Users\Data; // създаваме обект $data2 = new \Core\Admin\Data; // създаваме обект } } ?>

Нека решим да опростим извикванията на класовете чрез командата use. В този случай ни очаква проблем: и двата класа имат име Data, а това означава, че ще имаме конфликт на имена:

<?php namespace Project; // Ще има конфликт на имена: use \Core\Users\Data; // свързваме първия клас use \Core\Admin\Data; // свързваме втория клас class Test { public function __construct() { $data1 = new Data; $data2 = new Data; } } ?>

За решаване на този проблем съществува специална команда as, позволяваща да се зададе на свързания клас псевдоним - име, под което този клас ще бъде достъпен в този файл. Нека преименуваме нашите класове Data:

<?php namespace Project; use \Core\Users\Data as UsersData; use \Core\Admin\Data as AdminData; class Test { public function __construct() { $data1 = new UsersData; $data2 = new AdminData; } } ?>

Опростете следния код с използване на use:

<?php namespace Project; class Test { public function __construct() { $pageController = new \Resource\Controller\Page; $pageModel = new \Resource\Model\Page; } } ?>

Опростете следния код с използване на use:

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