⊗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; } } ?>
hitresuznl