पीएचपी नेमस्पेस
पीएचपी नेमस्पेस
नेमस्पेस क्वालिफायर हैं जो दो अलग-अलग समस्याओं को हल करते हैं:
- वे एक कार्य करने के लिए एक साथ काम करने वाली कक्षाओं को समूहीकृत करके बेहतर संगठन की अनुमति देते हैं
- वे एक ही नाम को एक से अधिक वर्गों के लिए उपयोग करने की अनुमति देते हैं
उदाहरण के लिए, आपके पास कक्षाओं का एक सेट हो सकता है जो एक HTML तालिका का वर्णन करता है, जैसे टेबल, रो और सेल, जबकि फर्नीचर का वर्णन करने के लिए कक्षाओं का एक और सेट भी हो सकता है, जैसे टेबल, चेयर और बेड। नेमस्पेस का उपयोग कक्षाओं को दो अलग-अलग समूहों में व्यवस्थित करने के लिए किया जा सकता है, जबकि दो वर्गों टेबल और टेबल को मिश्रित होने से भी रोका जा सकता है।
नेमस्पेस घोषित करना
namespace
कीवर्ड का उपयोग करके फ़ाइल की शुरुआत में नामस्थान घोषित किए जाते हैं :
वाक्य - विन्यास
एचटीएमएल नामक नामस्थान घोषित करें:
namespace Html;
नोट: एक namespace
घोषणा PHP फ़ाइल में सबसे पहले होनी चाहिए। निम्नलिखित कोड अमान्य होगा:
<?php
echo "Hello World!";
namespace Html;
...
?>
इस फ़ाइल में घोषित स्थिरांक, वर्ग और कार्य Html नामस्थान से संबंधित होंगे:
उदाहरण
एचटीएमएल नेमस्पेस में टेबल क्लास बनाएं:
<?php
namespace Html;
class Table {
public $title = "";
public
$numRows = 0;
public function message() {
echo "<p>Table
'{$this->title}' has {$this->numRows} rows.</p>";
}
}
$table = new
Table();
$table->title = "My table";
$table->numRows = 5;
?>
<!DOCTYPE html>
<html>
<body>
<?php
$table->message();
?>
</body>
</html>
आगे के संगठन के लिए, नेस्टेड नेमस्पेस होना संभव है:
वाक्य - विन्यास
कोड नामक नामस्थान के अंदर एचटीएमएल नामक नामस्थान घोषित करें:
namespace Code\Html;
नेमस्पेस का उपयोग करना
घोषणा का पालन करने वाला कोई भी कोड namespace
नामस्थान के अंदर काम कर रहा है, इसलिए नामस्थान से संबंधित कक्षाओं को बिना किसी क्वालिफायर के तत्काल किया जा सकता है। किसी नामस्थान के बाहर से कक्षाओं तक पहुँचने के लिए, कक्षा में नामस्थान संलग्न होना चाहिए।
उदाहरण
एचटीएमएल नेमस्पेस से कक्षाओं का प्रयोग करें:
$table = new Html\Table()
$row = new Html\Row();
जब एक ही समय में एक ही नाम स्थान से कई वर्गों का उपयोग किया जाता है, तो namespace
कीवर्ड का उपयोग करना आसान होता है:
उदाहरण
एचटीएमएल क्वालिफायर की आवश्यकता के बिना एचटीएमएल नेमस्पेस से कक्षाओं का प्रयोग करें:
namespace Html;
$table = new Table();
$row = new Row();
नाम स्थान उपनाम
लिखना आसान बनाने के लिए नामस्थान या वर्ग को उपनाम देना उपयोगी हो सकता है। use
यह कीवर्ड के साथ किया जाता है :
उदाहरण
एक नाम स्थान एक उपनाम दें:
use Html as H;
$table = new H\Table();
उदाहरण
एक वर्ग को उपनाम दें:
use Html\Table as
T;
$table = new T();