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

PHP में मेथड ओवरलोडिंग क्या है?

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

उपरोक्त अवधारणा अन्य प्रोग्रामिंग भाषाओं के लिए ठीक है और इसे स्टेटिक पॉलीमॉर्फिक यानी मेथड ओवरलोडिंग कहा जाता है।

उदाहरण

आइए एक उदाहरण के माध्यम से समझें।

<?php 
    class machine { 
        function doTask($var1){ 
            return $var1; 
        } 
        function doTask($var1,$var2){ 
            return $var1 * $var1 ; 
        } 
    } 
    $task1 = new machine(); 
    $task1->doTask(5,10); 
?>

आउटपुट:

Error

व्याख्या:

यह एक एरर उत्पन्न करेगा क्योंकि PHP कहेगा कि आपने इस मेथड को दो बार घोषित किया है।
लेकिन अन्य प्रोग्रामिंग भाषाएं कहती हैं, doTask($var1) और doTask($var1,$var2) ओवरलोडेड मेथड्स हैं। बाद वाले को कॉल करने के लिए, दो पैरामीटर्स पास किए जाने चाहिए, जबकि पूर्व के लिए केवल एक पैरामीटर की आवश्यकता होती है।
तो यह व्यवहार यानी कोडिंग समय पर फंक्शन को कॉल करने का निर्णय स्टेटिक पॉलीमॉर्फिक यानी मेथड ओवरलोडिंग के रूप में जाना जाता है।

आइए चर्चा करें कि PHP5 से संबंधित मेथड ओवरलोडिंग कैसे प्राप्त करें। PHP के मामले में, हमें PHP के मैजिक मेथड्स __call() का उपयोग करके मेथड ओवरलोडिंग प्राप्त करना होगा।

PHP में ओवरलोडिंग का अर्थ है मेथड का व्यवहार इनपुट पैरामीटर के अनुसार डायनामिक रूप से बदलता है। इस ट्यूटोरियल में, हम उन धारणाओं को समझेंगे। आइए __call() मेथड पर चर्चा करें।

__call():

यदि कोई क्लास __call() को एक्ज़ीक्यूट करती है, तो यदि उस क्लास के ऑब्जेक्ट को एक ऐसे मेथड के साथ कॉल किया जाता है जो मौजूद नहीं है तो उस मेथड के बजाय __call() को कॉल किया जाता है।

उदाहरण

आइए एक उदाहरण के साथ मेथड ओवरलोडिंग को समझें।

<?php 
    class Shape { 
        const PI = 3.142 ; 
        function __call($name,$arg){ 
            if($name == 'area') 
                switch(count($arg)){ 
                    case 0 : return 0 ; 
                    case 1 : return self::PI * $arg[0] ; 
                    case 2 : return $arg[0] * $arg[1]; 
                } 
        } 
    } 
    $circle = new Shape(); 
    echo $circle->area(3); 
    $rect = new Shape(); 
    echo $rect->area(8,6); 
?>

आउटपुट:

9.426 48

व्याख्या:

यहां area() मेथड डायनामिक रूप से बनाया गया है और मैजिक मेथड __call() की मदद से निष्पादित किया गया है और इसका व्यवहार ऑब्जेक्ट के रूप में पैरामीटर्स के पास के अनुसार बदलता है।

  1. PHP फ़ाइल क्या है? PHP फ़ाइल क्या है?

    .PHP फ़ाइल एक्सटेंशन वाली फ़ाइल एक PHP सोर्स कोड फ़ाइल है जिसमें हाइपरटेक्स्ट प्रीप्रोसेसर कोड होता है। इनका उपयोग अक्सर वेब पेज फ़ाइलों के रूप में किया जाता है जो आमतौर पर वेब सर्वर पर चल रहे PHP इंजन से HTML उत्पन्न करती हैं। PHP इंजन द्वारा कोड से बनाया गया HTML कंटेंट वही है जो वेब ब्राउज़र में

  1. - C# में Method Overloading (मेथड ओवरलोडिंग) क्या है?

    C# में मेथड ओवरलोडिंग मेथड ओवरलोडिंग एक ही क्लास में **एक ही नाम के कई मेथड्स** को परिभाषित करने की अनुमति देता है, बशर्ते उनके **पैरामीटर लिस्ट अलग हों** (संख्या, टाइप, या क्रम)। रिटर्न टाइप अकेले ओवरलोडिंग के लिए पर्याप्त नहीं है। ओवरलोडिंग के तरीके पैरामीटर्स की संख्या अलग हो पैरामीटर्स के डेटा

  1. - C# में ओवरलोडिंग क्या है

    C# स्टैटिक पॉलीमॉर्फिज्म इम्प्लीमेंट करने के लिए दो तकनीकें प्रदान करता है - फंक्शन ओवरलोडिंग ऑपरेटर ओवरलोडिंग फंक्शन ओवरलोडिंग एक ही नाम वाले लेकिन अलग-अलग पैरामीटर्स वाले दो या दो से अधिक मेथड्स को C# में फंक्शन ओवरलोडिंग कहा जाता है। C# में फंक्शन ओवरलोडिंग आर्गुमेंट्स की संख्या और आर्गुमेंट्स