⊗ppOpNsCA 104 of 107 menu

Դասերի մականուններ namespace-ների համար OOP-ում PHP-ում

Ենթադրենք, մենք ունենք երկու Data դասեր, որոնք պատկանում են տարբեր namespace-ների: Ենթադրենք, ինչ-որ դասում մեզ անհրաժեշտ են օբյեկտներ այդ երկու դասերից ևս:

<?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; } } ?>
kknlpltrde