Amri ya use na Maeneo ya Majina katika OOP katika PHP

Hebu tuchukulie tuna darasa lifuatalo Data:

/core/admin/data.php<?php
  namespace \Core\Admin;
  
  class Data
  {
    public function __construct($num)
    {
      
    }
  }
?>

Hebu pia tuchukulie kuna darasa Page, linalounda ndani yake vitu vya darasa Data:

/users/page.php<?php
  namespace Users;
  
  class Page
  {
    public function __construct()
    {
      $data1 = new \Core\Admin\Data('1');
      $data2 = new \Core\Admin\Data('2');
    }
  }
?>

Kama unavyoona, madarasa yetu yote mawili yako katika maeneo ya majina tofauti kabisa, kwa hivyo miito ya darasa Data haiwezi kurahisishwa, kama tulivyofanya katika somo lilopita. Miito hii, hata hivyo, ni mirefu na haifai, kwani katika kila mwito wa darasa Data inabidi tuonyeshe eneo lake la majina refu.

Kwa ajili ya kutatua tatizo kama hilo kuna amri maalum use. Kwa kutumia amri hii inatosha kuunganisha darasa kwa jina lake kamili mara moja, na baada ya hapo inawezekana kurejelea darasa hili tu kwa jina la darasa. Angalia mfano:

/users/page.php<?php
  namespace Users;
  use \Core\Admin\Data; // tunaunganisha darasa
  
  class Page extends Controller
  {
    public function __construct()
    {
      $data1 = new Data('1'); // tunaita kwa jina tu
      $data2 = new Data('2'); // tunaita kwa jina tu
    }
  }
?>
Задание 1

Rahisisha msimbo ufuatao kwa kutumia use:

php<?php
  namespace Project;
  
  class Test
  {
    public function __construct()
    {
      // Tunaunda vitu 3 vya darasa moja:
      $data1  = new \Core\Users\Data('user1');
      $data2  = new \Core\Users\Data('user3');
      $data3  = new \Core\Users\Data('user3');
    }
  }
?>
Задание 2

Zimetolewa madarasa yafuatayo:

php<?php
  namespace Core\Admin;
  
  class Controller
  {
    
  }
?>
php<?php
  namespace Users;
  
  class Page extends \Core\Admin\Controller
  {
    
  }
?>

Rahisisha msimbo wa urithi wa darasa, ukitumia amri use.