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

PHP स्टैटिक प्रॉपर्टीज़ और मेथड्स (Static Properties and Methods) - :: ऑपरेटर


परिचय

PHP क्लास में, static कीवर्ड के साथ घोषित प्रॉपर्टीज और मेथड्स को इसके ऑब्जेक्ट द्वारा -> ऑपरेटर की सहायता से एक्सेस नहीं किया जा सकता। वास्तव में, क्लास के किसी भी इंस्टेंस को एक्सेस करने के लिए ऑब्जेक्ट की आवश्यकता नहीं होती। क्लास में स्टैटिक आइटम्स की डिफ़ॉल्ट विजिबिलिटी पब्लिक होती है।

स्टैटिक प्रॉपर्टीज़ (Static Properties)

क्लास के बाहर से स्टैटिक प्रॉपर्टी एक्सेस करने के लिए, हमें क्लास के नाम के साथ स्कोप रिज़ॉल्यूशन ऑपरेटर (::) का उपयोग करना होगा। क्लास के नाम का मूल्यांकन करने वाला स्ट्रिंग वेरिएबल भी स्टैटिक प्रॉपर्टी तक पहुँच प्रदान कर सकता है।

<?php 
class testclass { 
    static $name = "test"; 
} 
echo testclass::$name; 
$var = "testclass"; 
echo $var::$name; 
?>

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

<?php 
class testclass { 
    static $name = "test"; 
    public function test() { 
        echo self::$name; 
    } 
} 
$obj = new testclass(); 
$obj->test(); 
?>

पैरेंट क्लास में घोषित किसी भी स्टैटिक प्रॉपर्टी को चाइल्ड क्लास मेथड के अंदर, स्कोप रिज़ॉल्यूशन ऑपरेटर के साथ parent कीवर्ड का उपयोग करके संदर्भित किया जा सकता है।

<?php 
class testclass { 
    static $name = "test"; 
    public function test() { 
        echo self::$name; 
    } 
} 
class myclass extends testclass { 
    public function mytest() { 
        echo parent::$name; 
    } 
} 
$obj = new myclass(); 
$obj->mytest(); 
?>

स्टैटिक मेथड्स (Static Methods)

जब किसी मेथड को स्टैटिक घोषित किया जाता है, तो स्यूडो-वेरिएबल $this इसके लिए उपलब्ध नहीं होता। इसलिए, क्लास के इंस्टेंस एट्रिब्यूट्स को इसमें एक्सेस नहीं किया जा सकता। स्टैटिक मेथड को क्लास के नाम के साथ स्कोप रिज़ॉल्यूशन ऑपरेटर द्वारा कॉल किया जाता है।

निम्न उदाहरण में, क्लास में एक स्टैटिक प्रॉपर्टी $count है जो हर बार कंस्ट्रक्टर निष्पादित होने पर बढ़ती है (यानी प्रत्येक ऑब्जेक्ट के लिए)। क्लास के अंदर, एक स्टैटिक फ़ंक्शन है जो स्टैटिक प्रॉपर्टी का मान प्राप्त करता है।

उदाहरण: ऑब्जेक्ट काउंट के लिए स्टैटिक प्रॉपर्टी और मेथड

<?php 
class testclass { 
    static $count = 0; 
    function __construct() { 
        self::$count++; 
    } 
    static function showcount() { 
        echo "count = " . self::$count; 
    } 
} 
$a = new testclass(); 
$b = new testclass(); 
$c = new testclass(); 
testclass::showcount(); 
?>

आउटपुट

count = 3
  1. जावास्क्रिप्ट में क्लास को स्टैटिक मेथड्स कैसे असाइन करें? जावास्क्रिप्ट में क्लास को स्टैटिक मेथड्स कैसे असाइन करें?

    जावास्क्रिप्ट में क्लास को स्टैटिक मेथड्स असाइन करने के लिए बस मेथड के आगे static कीवर्ड लगाएं। स्टैटिक मेथड्स को फिर क्लास को इंस्टेंटिएट किए बिना बुलाया जा सकता है। जावास्क्रिप्ट में क्लास को स्टैटिक मेथड्स असाइन करने के लिए निम्नलिखित कोड है: उदाहरण <!DOCTYPE html> <html lang="en&q

  1. - पायथन में एट्रिब्यूट और मेथड एक्सेस करना

    एक ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग भाषा के रूप में पायथन ऑब्जेक्ट्स पर जोर देता है। क्लासेस वह ब्लूप्रिंट हैं जिनसे ऑब्जेक्ट्स बनाए जाते हैं। पायथन में प्रत्येक क्लास में कई एट्रिब्यूट हो सकते हैं जिनमें फ़ंक्शन भी एक एट्रिब्यूट के रूप में शामिल है। क्लास के एट्रिब्यूट एक्सेस करना क्लास के एट्रिब्य

  1. - पायथन क्लास में स्टेटिक मेथड्स क्या हैं?

    किसी भी पायथन क्लास में तीन प्रकार के मेथड्स होते हैं: इंस्टेंस मेथड्स, क्लास मेथड्स और स्टेटिक मेथड्स।उदाहरणनिम्न कोड पर विचार करें:class OurClass:\n def method(self):\n return instance method called, self\n @classmethod\n def classmethod(cls):\n return class method called, c