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

पीएचपी ओवरलोडिंग

परिचय

सी ++ या जावा जैसी अन्य ऑब्जेक्ट ओरिएंटेड भाषाओं की तुलना में PHP में ओवरलोडिंग की व्याख्या अलग है, जिसमें शब्द का अर्थ है एक ही नाम की विधि के साथ एक से अधिक बार लेकिन विभिन्न तर्कों और / या रिटर्न प्रकार के साथ एक वर्ग रखने की क्षमता। दूसरी ओर PHP में, डायनामिकली क्रिएटिंग प्रॉपर्टीज और मेथड्स की विशेषता को ओवरलोडिंग के रूप में जाना जाता है। PHP के जादुई तरीके (डबल अंडरस्कोर से शुरू होने वाले मेथड नेम) का इस्तेमाल डायनेमिक प्रॉपर्टीज और मेथड्स को सेट करने के लिए किया जाता है।

गुणों को अधिभारित करने के लिए निम्नलिखित जादुई विधियों का उपयोग किया जाता है -

सिंटैक्स

public __set ( string $name , mixed $value ) : void
public __get ( string $name ) : mixed
public __isset ( string $name ) : bool
public __unset ( string $name ) : void

__set() दुर्गम संपत्तियों के लिए डेटा लिखने के लिए चलाया जाता है जो संरक्षित या निजी या गैर-मौजूद हैं।

__get() दुर्गम गुणों से डेटा पढ़ता है।

__isset() दुर्गम गुणों पर isset() या खाली() कॉल करता है।

__unset() को तब लागू किया जाता है जब unset() को दुर्गम गुणों पर कॉल किया जाता है।

निम्नलिखित कोड में, myprop . नामक एक गतिशील संपत्ति सेट, पुनर्प्राप्त और अनसेट किया गया है

उदाहरण

<?php
class myclass{
   public function __set($name, $value){
      echo "setting $name property to $value \n";
      $this->$name = $value;
   }
   public function __get($name){
      echo "value of $name property is ";
      return $this->$name;
   }
   public function __isset($name){
      return isset($this->$name);
   }
   public function __unset($name){
      unset($this->$name);
   }
}
$obj = new myclass();
$obj->myprop="test";
echo $obj->myprop . "\n";
var_dump (isset($obj->myprop));
unset($obj->myprop);
var_dump (isset($obj->myprop));
?>

आउटपुट

आउटपुट नीचे जैसा है -

setting myprop property to test
test
bool(true)
bool(false)

विधि ओवरलोडिंग

विधियों को गतिशील रूप से सेट करने के लिए उपयोग की जाने वाली दो जादुई विधियाँ हैं __call() और __callStatic()

public __call ( string $name , array $arguments ) : mixed
public static __callStatic ( string $name , array $arguments ) : mixed

__call() किसी वस्तु के संदर्भ में अप्राप्य विधियों को लागू करते समय ट्रिगर होता है।

__callStatic() एक स्थिर संदर्भ में अप्राप्य विधियों को लागू करते समय ट्रिगर किया जाता है।

निम्नलिखित परीक्षा PHP में विधि ओवरलोडिंग को प्रदर्शित करती है

उदाहरण

<?php
class myclass{
   public function __call($name, $args){
      // Note: value of $name is case sensitive.
      echo "Calling object method $name with " . implode(" ", $args). "\n";
   }
   public static function __callStatic($name, $args){
      echo "Calling static method $name with " . implode(" ", $args). "\n";
   }
}
$obj = new myclass();
$obj->mymethod("Hello World!");
myclass::mymethod("Hello World!");
?>

आउटपुट

उपरोक्त कोड निम्नलिखित परिणाम उत्पन्न करता है:

Calling object method mymethod with Hello World!
Calling static method mymethod with Hello World!

  1. PHP में फंक्शन ओवरलोडिंग और ओवरराइडिंग

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

  1. PHP में गेटर्स और सेटर्स के तरीके क्या हैं?

    इस लेख में, हम PHP में गेट्टर और सेटर रणनीतियाँ बनाने का सबसे अच्छा तरीका सीखेंगे। गेट्टर और सेटर रणनीतियों का उपयोग तब किया जाता है जब हमें अंतिम-उपयोगकर्ताओं द्वारा चरों तक सीधी पहुंच को प्रतिबंधित करने की आवश्यकता होती है। गेटर्स और सेटर्स वे विधियाँ हैं जिनका उपयोग चर के मूल्यों को परिभाषित करने

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

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