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

PHP स्कोप रिज़ॉल्यूशन ऑपरेटर (Scope Resolution Operator ::) - Paamayim Nekudotayim


परिचय

PHP में, डबल कोलन :: को स्कोप रिज़ॉल्यूशन ऑपरेटर (Scope Resolution Operator) के रूप में परिभाषित किया गया है। इसका उपयोग तब किया जाता है जब हम क्लास स्तर पर परिभाषित कॉन्स्टेंट्स, प्रॉपर्टीज और मेथड्स तक पहुँचना चाहते हैं। इन आइटम्स को क्लास परिभाषा के बाहर संदर्भित करते समय, क्लास के नाम का उपयोग स्कोप रिज़ॉल्यूशन ऑपरेटर के साथ किया जाता है। इस ऑपरेटर को Paamayim Nekudotayim भी कहा जाता है, जिसका हिब्रू में अर्थ डबल कोलन होता है।

सिंटैक्स

<?php 
class A { 
    const PI = 3.142; 
    static $x = 10; 
} 
echo A::PI; 
echo A::$x; 
$var = 'A'; 
echo $var::PI; 
echo $var::$x; 
?>

क्लास के अंदर

किसी भी मेथड के अंदर क्लास-स्तरीय आइटम्स तक पहुँचने के लिए, कीवर्ड self का उपयोग किया जाता है।

<?php 
class A { 
    const PI = 3.142; 
    static $x = 10; 
    static function show() { 
        echo self::PI . self::$x; 
    } 
} 
A::show(); 
?>

चाइल्ड क्लास में

यदि पैरेंट क्लास मेथड को चाइल्ड क्लास द्वारा ओवरराइड किया जाता है और आपको संबंधित पैरेंट मेथड को कॉल करने की आवश्यकता है, तो इसे parent कीवर्ड और स्कोप रिज़ॉल्यूशन ऑपरेटर से उपसर्गित किया जाना चाहिए।

उदाहरण: पैरेंट मेथड कॉल करना

<?php 
class testclass { 
    public function sayhello() { 
        echo "Hello World\n"; 
    } 
} 
class myclass extends testclass { 
    public function sayhello() { 
        parent::sayhello(); 
        echo "Hello PHP"; 
    } 
} 
$obj = new myclass(); 
$obj->sayhello(); 
?>

आउटपुट

Hello World 
Hello PHP
  1. - PHP 7 में अनाम क्लासेस?

    PHP 7 में अनाम क्लासेस को new class का उपयोग करके परिभाषित किया जा सकता है। इसका उपयोग पूर्ण क्लास परिभाषा के बजाय भी किया जा सकता है। अनाम क्लासेस क्यों उपयोग करें? मॉकिंग टेस्ट आसान है। इंटरफेस के लिए डायनामिक कार्यान्वयन आसानी से बनाए जा सकते हैं, जिससे जटिल मॉकिंग APIs के उपयोग से बचा जा सकता

  1. - C# में Scope Resolution Operator क्या है?

    C# में Scope Resolution Operator का अर्थ C++ की तुलना में अलग है। C++ में :: Global Variables के लिए उपयोग किया जाता है, जबकि C# में यह Namespaces से Related है।यदि आपके पास एक Type है जो Different Namespaces में Identifier Share करता है, तो उन्हें Identify करने के लिए Scope Resolution Operator का उ

  1. - C# में स्कोप रेज़ोल्यूशन ऑपरेटर (::) का उपयोग कहाँ करते हैं?

    C++ में स्कोप रेज़ोल्यूशन ऑपरेटर यानी :: का उपयोग ग्लोबल वेरिएबल्स के लिए किया जाता है, जबकि C# में यह नेमस्पेस से संबंधित है।यदि आपके पास एक टाइप है जो अलग-अलग नेमस्पेस में एक ही आइडेंटिफायर साझा करता है, तो उनकी पहचान करने के लिए स्कोप रेज़ोल्यूशन ऑपरेटर का उपयोग करें।उदाहरण के लिए, System.Console