Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> PHP

PHP सब-नेमस्पेस घोषित करना: नेमस्पेस में नेमस्पेस


परिचय

नेमस्पेस के अंदर नेमस्पेस बनाना संभव है। जैसे फाइल सिस्टम में एक डायरेक्टरी में सब-डायरेक्टरीज़ हो सकती हैं एक हायरार्किकल संरचना में, वैसे ही सब-नेमस्पेस को हायरार्की में व्यवस्थित किया जा सकता है। टॉप-लेवल और सब-लेवल नेमस्पेस के बीच संबंध को परिभाषित करने के लिए बैकस्लैश कैरेक्टर \ का उपयोग किया जाता है।

इस उदाहरण में टॉप-लेवल नेमस्पेस myspace में दो सब-नेमस्पेस space1 और space2 हैं। किसी सब-नेमस्पेस के अंदर फंक्शन्स/क्लासेज को एक्सेस करने के लिए, पहले इसे use कीवर्ड से उपलब्ध कराएं।

उदाहरण

<?php
namespace myspace\space1;
function hello() {
    echo "Hello World from space1\n";
}

namespace myspace\space2;
function hello() {
    echo "Hello World from space2\n";
}

use myspace\space1;
hello();

use myspace\space2;
hello();
?>

आउटपुट

Hello World from space2
Hello World from space2

व्याख्या

पहले use myspace\space1 के बाद hello() कॉल करने पर space1 का hello() चलना चाहिए था, लेकिन चूंकि बाद में use myspace\space2 किया गया, इसलिए दूसरा hello() space2 का चला। PHP में use स्टेटमेंट कंपाइल-टाइम पर रिज़ॉल्व होते हैं और अंतिम use स्टेटमेंट प्रभावी होता है।

सही उपयोग

प्रत्येक फंक्शन को उसके नेमस्पेस के साथ कॉल करें या अलग-अलग एलियास उपयोग करें:

<?php
namespace myspace\space1;
function hello() { echo "Hello World from space1\n"; }

namespace myspace\space2;
function hello() { echo "Hello World from space2\n"; }

namespace {
    use myspace\space1;
    use myspace\space2 as space2;
    
    space1\hello();  // space1 का hello
    space2\hello();  // space2 का hello
}
?>

मुख्य बिंदु

  • सब-नेमस्पेस बैकस्लैश से अलग किए जाते हैं: Vendor\Package\SubPackage
  • use स्टेटमेंट फाइल के टॉप लेवल पर होने चाहिए (फंक्शन के अंदर नहीं)।
  • use के साथ एलियासिंग: use Very\Long\Namespace\Name as ShortName
  • नेमस्पेस केस-इनसेंसिटिव होते हैं लेकिन कन्वेंशन लोअरकेस है।
  1. - क्या PHP में परिभाषित नेमस्पेस की सूची प्राप्त करना संभव है?

    दिए गए फ़ाइल 1 में नेमस्पेस ns_1 है और फ़ाइल 2 में नेमस्पेस ns_2 है, यदि फ़ाइल 1 और फ़ाइल 2 को फ़ाइल 3 में शामिल किया जाता है, तो यह जानने का कोई तरीका नहीं है कि नेमस्पेस ns_1 और ns_2 लोड किए गए हैं। एकमात्र तरीका class_exists फ़ंक्शन का उपयोग करना है और विशिष्ट नेमस्पेस के साथ वर्गों की सूची get_

  1. - PHP के साथ विराम चिह्न हटाएं

    preg_replace फ़ंक्शन का उपयोग स्ट्रिंग में कैरेक्टर्स का मिलान करने और अनावश्यक कैरेक्टर्स को हटाने के लिए किया जा सकता है। अक्षरों और संख्याओं को रखने के लिए: उदाहरण <?php $s = Hello, my name is Bobby !? I am 8 years !; print_r(preg_replace(/[^a-z0-9]+/i, , $s)); ?> आउटपुट यह निम्न आउटपु

  1. - PHP में नेमस्पेस कीवर्ड क्या है?

    इस लेख में, हम PHP में नेमस्पेस के बारे में जानने जा रहे हैं। PHP में जब हम बड़े एप्लिकेशन बना रहे होते हैं या थर्ड-पार्टी एप्लिकेशन/लाइब्रेरी को इंटीग्रेट कर रहे होते हैं तो क्लास नामों, फंक्शन नामों के बीच टकराव की संभावना हो सकती है। इसलिए इन समस्याओं से बचने के लिए PHP नेमस्पेस संबंधित क्लासेज,