PHP में OOP में use कमांड और नेमस्पेस

मान लीजिए हमारे पास निम्नलिखित क्लास Data है:

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

मान लीजिए एक क्लास Page भी है, जो अपने अंदर क्लास Data के ऑब्जेक्ट बनाती है:

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

जैसा कि आप देख रहे हैं, हमारे दोनों क्लास पूरी तरह से अलग-अलग नेमस्पेस में हैं, इसलिए क्लास Data के कॉल को सरल नहीं किया जा सकता, जैसा कि हमने पिछले पाठ में किया था। हालाँकि, ये कॉल बहुत लंबे और असुविधाजनक हैं, क्योंकि क्लास Data के प्रत्येक कॉल में उसके लंबे नेमस्पेस को निर्दिष्ट करना पड़ता है।

इस तरह की समस्या के समाधान के लिए एक विशेष कमांड use मौजूद है। इस कमांड की सहायता से उसके पूरे नाम से क्लास को एक बार कनेक्ट करना पर्याप्त है, और उसके बाद इस क्लास को सीधे क्लास के नाम से एक्सेस किया जा सकता है। उदाहरण देखें:

/users/page.php<?php
  namespace Users;
  use \Core\Admin\Data; // क्लास को कनेक्ट करें
  
  class Page extends Controller
  {
    public function __construct()
    {
      $data1 = new Data('1'); // सीधे नाम से कॉल करें
      $data2 = new Data('2'); // सीधे नाम से कॉल करें
    }
  }
?>
Задание 1

use का उपयोग करके निम्नलिखित कोड को सरल बनाएं:

php<?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');
    }
  }
?>
Задание 2

निम्नलिखित क्लास दिए गए हैं:

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

क्लास के इनहेरिटेंस कोड को use कमांड लगाकर सरल बनाएं।