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() को कॉल किया जाता है।

उदाहरण

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

<?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

स्पष्टीकरण:

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


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

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

  1. सी # में विधि ओवरलोडिंग क्या है?

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

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

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