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

PHP में स्टेटिक और इंस्टेंस मेथड समझाया गया

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

यहां ध्यान दें कि इंस्टेंस मेथड हमेशा क्लास के ऑब्जेक्ट से जुड़ा होता है जबकि दूसरी ओर स्टेटिक मेथड्स हमेशा क्लास से जुड़े होते हैं।

पहले स्टेटिक मेथड के बारे में बात करते हैं। PHP में स्टेटिक मेथड अन्य ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग भाषाओं के समान है। PHP में स्टेटिक मेथड का उपयोग करने के महत्वपूर्ण मामले। स्टेटिक मेथड का उपयोग केवल तब किया जाना चाहिए जब विशिष्ट जानकारी पूरी क्लास के लिए स्थिर रहती है। अनिवार्य रूप से, स्टेटिक मेथड का उपयोग तब किया जाता है जब उस मेथड को उस क्लास के ऑब्जेक्ट की मदद के बिना एक्सेस करना हो।

उदाहरण

<?php 
    class Car{ 
        static function getColor(){ 
            return "blue"; 
        } 
    } 
    echo (Car::getColor()); 
?>

आउटपुट:

blue

व्याख्या:

उदाहरण के लिए, उपरोक्त प्रोग्राम में कुछ प्रोग्रामर कार के बारे में जानकारी बना रहा है और उसमें आपके पास एक Car क्लास है और एक फंक्शन getColor() है जो कार का रंग परिभाषित करता है, इसलिए प्रत्येक ऑब्जेक्ट को getColor() फंक्शन की आवश्यकता होती है जो क्लास Car के सभी ऑब्जेक्ट्स के लिए समान रंग लौटाता है, इसलिए इस मामले में हम getColor() मेथड को स्टेटिक बना सकते हैं।

आइए इंस्टेंस मेथड पर चर्चा करें। इंस्टेंस मेथड का उपयोग तब किया जाता है जब ऑब्जेक्ट बनाए बिना मेथड को कॉल करने का कोई तरीका नहीं होता। साथ ही हर बार जब मेथड को क्लास की प्रॉपर्टीज के साथ इंटरैक्ट करने की आवश्यकता होती है तो हमें इंस्टेंस मेथड की आवश्यकता होती है।

उदाहरण

आइए उपरोक्त मामले को एक उदाहरण के साथ प्रदर्शित करें:

<?php 
    class Employee{ 
        private $empname; 
        function setEmpname($empname) { 
            $this->empname = $empname; 
        } 
        function getEmpname() { 
            return $this -> empname; 
        } 
    } 
    $obj = new Employee; 
    $obj -> setEmpname("Alex"); 
    echo $obj -> getName(); 
?>

आउटपुट:

Alex

व्याख्या:

एक Employee क्लास पर विचार करें जिसमें setEmpname() एम्प्लॉय नाम पढ़ता है और getEmpname() मेथड जो एम्प्लॉय का नाम लौटाता है। इस मामले में, प्रत्येक एम्प्लॉय का नाम एक-दूसरे से अलग होता है इसलिए हम getEmpname() या setEmploye() मेथड को स्टेटिक घोषित नहीं कर सकते क्योंकि हर बार ये मेथड्स वेरिएबल "$empname" के साथ इंटरैक्ट करते हैं।

  1. - C# में स्टेटिक बनाम नॉन-स्टेटिक मेथड

    किसी सदस्य फ़ंक्शन को static घोषित करें। ऐसे फ़ंक्शन केवल स्टेटिक वेरिएबल तक पहुंच सकते हैं। स्टेटिक फ़ंक्शन ऑब्जेक्ट बनने से पहले भी मौजूद होते हैं।एक स्टेटिक क्लास को इंस्टेंटिएट नहीं किया जा सकता और इसमें केवल स्टेटिक सदस्य हो सकते हैं।स्टेटिक मेथड static कीवर्ड का उपयोग करके सेट किया जाता है:pub

  1. - Java में static और non-static मेथड्स में अंतर

    एक Java मेथड स्टेटमेंट्स का एक संग्रह है जिन्हें एक ऑपरेशन करने के लिए एक साथ ग्रुप किया जाता है। जब आप System.out.println() मेथड को कॉल करते हैं, उदाहरण के लिए, सिस्टम वास्तव में कंसोल पर एक संदेश प्रदर्शित करने के क्रम में कई स्टेटमेंट्स को निष्पादित करता है।Static Methodएक static मेथड को क्लास मे

  1. - Java में Static Binding और Dynamic Binding

    हां! जब कंपाइलर जानता है कि मेथड निष्पादन के लिए किन ऑब्जेक्ट्स का उपयोग किया जाना है, तो यह रेफरेंस को ऑब्जेक्ट से स्टैटिकली बाइंड कर सकता है। उदाहरण के लिए, स्टैटिक वेरिएबल्स, प्राइवेट, फाइनल वेरिएबल्स स्टैटिक बाइंडिंग का उपयोग कर रहे हैं। जबकि यदि ऑब्जेक्ट पहचान रनटाइम पर की जानी है तो डायनामिक ब