⊗ppOpNsCU 101 of 107 menu

PHP да ООП да use команда ва номфазалар

Фарз қилайлик, бизда қуйидаги 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 командасидан фойдаланиб, мерос олиш кодини соддалаштиринг.

idroptesuzl