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

PHP में पास बाय रेफरेंस और पास बाय वैल्यू क्या है?

इस लेख में, हम PHP में पास बाय वैल्यू और पास बाय रेफरेंस के बारे में सीखेंगे।

अब, आइए इन दो कॉन्सेप्ट्स को विस्तार से समझते हैं।

PHP में आमतौर पर, हम फंक्शन को आर्गुमेंट्स पास करने के लिए पास बाय वैल्यू दृष्टिकोण का पालन करते हैं। हम इस अभ्यास का पालन करते हैं क्योंकि यदि फंक्शन के भीतर आर्गुमेंट का मान बदल जाता है, तो यह फंक्शन के बाहर नहीं बदलता।

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

आइए पास बाय रेफरेंस से शुरू करते हैं। जैसा कि पहले उल्लेख किया गया है, हम एक वेरिएबल को फंक्शन में रेफरेंस द्वारा पास कर सकते हैं ताकि फंक्शन वेरिएबल को मॉडिफाई कर सके। पैरामीटर्स को पास बाय रेफरेंस द्वारा पास करने की प्रक्रिया शुरू करने के लिए, फंक्शन परिभाषा में आर्गुमेंट नाम के आगे एम्परसैंड (&) प्रीपेंड करें।

उदाहरण

आइए एक सरल उदाहरण से इसका परीक्षण करें।

<?php 
    function calculate(&$a){ 
        $a++; 
    } 
    $a=5; 
    calculate($a); 
    echo $a; 
?>

आउटपुट

6

व्याख्या

यहां हमने वेरिएबल $a घोषित किया है और इसे फंक्शन calculate() में पास बाय रेफरेंस के रूप में पास कर रहे हैं। इसलिए सिद्धांत के अनुसार यदि $a का मान फंक्शन के अंदर बदल जाता है तो यह फंक्शन के बाहर भी बदल जाएगा।

नोट

फंक्शन कॉल पर कोई रेफरेंस साइन नहीं होता - केवल फंक्शन परिभाषाओं पर। फंक्शन परिभाषाएं अकेले आर्गुमेंट को सही ढंग से रेफरेंस द्वारा पास करने के लिए पर्याप्त हैं। यह PHP के 5.4 संस्करण में डिप्रेकेटेड है जब आप calculate(&$a) का उपयोग करते हैं तो यह एरर थ्रो करता है।

उदाहरण

पास बाय वैल्यू समझने के लिए एक उदाहरण का परीक्षण करें।

<?php 
    function calculate($a){ 
        $a++; 
        echo $a."<br/>"; 
    } 
    $a=5; 
    calculate($a); 
    echo $a; 
?>

आउटपुट

6 5

व्याख्या

यहां हमने फंक्शन calculate() को मान पास बाय वैल्यू के रूप में पास किया है। इसका मान फंक्शन के अंदर बदल जाता है लेकिन वह फंक्शन के बाहर प्रतिबिंबित नहीं होता। वेरिएबल का मान फंक्शन के बाहर वही रहता है।

  1. - PHP में count_chars() फ़ंक्शन

    count_chars() फ़ंक्शन PHP में count_chars() फ़ंक्शन किसी स्ट्रिंग में उपयोग किए गए कैरेक्टर्स के बारे में जानकारी रिटर्न करता है। सिंटैक्स count_chars(string $string, int $mode = 0): array|string पैरामीटर्स string - चेक की जाने वाली स्ट्रिंग mode - रिटर्न मोड निर्दिष्ट करता है। 0 डिफ़ॉल्ट है। 0

  1. - C# में पास बाय वैल्यू और रेफरेंस पैरामीटर्स में अंतर

    पास बाय वैल्यू (Pass by Value) - डिफ़ॉल्ट यह पैरामीटर्स पास करने का डिफ़ॉल्ट तंत्र है। जब कोई मेथड कॉल किया जाता है, तो प्रत्येक वैल्यू पैरामीटर के लिए एक नया स्टोरेज लोकेशन बनाया जाता है। वास्तविक पैरामीटर्स के मान इसमें कॉपी किए जाते हैं। इसलिए, मेथड के अंदर पैरामीटर में किए गए परिवर्तनों का आर्गु

  1. - पायथन में पास बाय रेफरेंस बनाम वैल्यू

    पायथन भाषा में सभी पैरामीटर्स (आर्गुमेंट्स) रेफरेंस द्वारा पास किए जाते हैं। इसका मतलब है कि यदि आप किसी फ़ंक्शन के भीतर किसी पैरामीटर को क्या रेफर करता है बदलते हैं, तो परिवर्तन कॉलिंग फ़ंक्शन में भी प्रतिबिंबित होता है। उदाहरण #!/usr/bin/python # फ़ंक्शन परिभाषा यहां है def changeme(mylist):