परिचय
एक फ़ंक्शन के शरीर में अंतिम विवरण के रूप में वापसी हो सकती है, हालांकि यह अनिवार्य नहीं है। जब किसी फ़ंक्शन को कॉल किया जाता है, तो प्रोग्राम का नियंत्रण उसके बॉडी ब्लॉक में स्टेटमेंट निष्पादित करने के बाद कॉलिंग वातावरण में वापस आ जाता है - भले ही फंक्शन ब्लॉक में अंतिम स्टेटमेंट रिटर्न हो या नहीं। रिटुन स्टेटमेंट के अभाव में, कंट्रोल कॉल करने वाले को NULL वैल्यू देता है। यदि रिटर्न स्टेटमेंट में एक्सप्रेशन क्लॉज होता है, तो एक्सप्रेशन का मान वापस किया जाता है। फ़ंक्शन केवल एक मान लौटा सकता है जो अदिश प्रकार, सरणी या किसी वस्तु का हो सकता है। लौटाया गया मान बाद के प्रसंस्करण के लिए कुछ चर को सौंपा जा सकता है
वापसी के साथ कार्य करें
निम्नलिखित उदाहरण में, एक फ़ंक्शन तर्क के रूप में पारित दो पूर्णांकों का योग देता है
उदाहरण
<?php function add($var1, $var2){ $var3= $var1+$var2 ; return $var3; } $x=10; $y=20; $z=add($x,$y); echo "addition=$z"; ?>
आउटपुट
यह निम्नलिखित परिणाम देगा। -
addition=30
रिटर्निंग ऐरे
फ़ंक्शन केवल एक मान लौटा सकता है। हालांकि, कई मानों की सरणी वापस की जा सकती है। निम्नलिखित उदाहरण दो संख्याओं को एक फ़ंक्शन में पास करता है जो जोड़, घटाव, गुणा और भाग की सरणी देता है
उदाहरण
<?php function result($var1, $var2){ $r1=$var1+$var2; $r2=$var1-$var2; $r3=$var1*$var2; $r4=$var1/$var2; return array("add"=>$r1,"sub"=>$r2,"multiply"=>$r3,"division"=>$r4); } $x=10; $y=20; $arr=result($x,$y); foreach ($arr as $k=>$v){ echo $k . "->" . $v . "\n"; } ?>
आउटपुट
यह निम्नलिखित परिणाम देगा। -
add->30 sub->-10 multiply->200 division->0.5
संदर्भ द्वारा वापसी
जिस तरह तर्कों को संदर्भ द्वारा पारित किया जा सकता है, उसी तरह एक फ़ंक्शन संदर्भ द्वारा भी वापस आ सकता है। उस उद्देश्य के लिए, फ़ंक्शन का नाम $ प्रतीक से पहले होना चाहिए। इसके अलावा, फ़ंक्शन कॉल में और प्रतीक भी दिया जाना चाहिए
निम्नलिखित उदाहरण में, myfunction() में एक स्थिर सरणी है। इसके तत्वों में से एक संदर्भ द्वारा लौटाया जाता है और एक चर में स्वीकार किया जाता है। चर का मान तब संशोधित किया जाता है और उसी फ़ंक्शन को फिर से कहा जाता है। फ़ंक्शन में ऐरे को अब अपना मान परिवर्तित दिखाना चाहिए।
उदाहरण
<?php function &myfunction(){ static $arr=[1,2,3,4,5]; echo "array elements: "; foreach ($arr as $i){ echo "$i "; } echo "\n"; return $arr[2]; } $var=&myfunction(); echo "returned by reference : $var\n"; $var=100; $var=&myfunction(); ?>
आउटपुट
यह निम्नलिखित परिणाम देगा। -
array elements: 1 2 3 4 5 returned by reference : 3 array elements: 1 2 100 4 5
चर $x और $y के मान स्वैप () फ़ंक्शन में आपस में बदल दिए जाते हैं। चूंकि, चर संदर्भ द्वारा पारित किए जाते हैं, चर फ़ंक्शन के बाहर भी संशोधित मान दिखाते हैं
रिटर्न टाइप हिंट (रिटर्न टाइप डिक्लेरेशन)
PHP 7 से आगे, आप लौटाए गए चर/वस्तु के लिए प्रकार संकेत निर्दिष्ट कर सकते हैं, जैसे तर्कों के लिए प्रकार घोषित करना संभव है। वापसी प्रकार के लिए भी सभी अदिश प्रकार, वर्ग और सरणी का उपयोग किया जा सकता है
सिंटैक्स
//define a function with type hints for return value function myfunction($arg1, $arg2): type{ .. .. return $var; }के लिए टाइप हिंट के साथ एक फंक्शन को परिभाषित करें
स्केलर प्रकार, सरणी, वर्ग/इंटरफ़ेस, चलने योग्य और ऑब्जेक्ट सहित सभी मानक PHP डेटा प्रकार फ़ंक्शन घोषणा में वापसी चर के लिए प्रकार संकेत प्रदान करने के लिए मान्य प्रकार हैं
उदाहरण
<?php function add($x, $y): float{ return $x+$y; } $var=add(5,8); var_dump($var); ?>
आउटपुट
यह निम्नलिखित परिणाम देगा। -
float(13)
सख्त_प्रकार=1 . के साथ घोषणा कथन का उपयोग डेटा प्रकारों के ज़बरदस्ती को रोकेगा
उदाहरण
<?php declare (strict_types=1); function add($x, $y): int{ return $x+$y; } $var=add(5.5,8.8); var_dump($var); ?>
आउटपुट
यह अब इस प्रकार अपवाद देगा -
PHP Fatal error: Uncaught TypeError: Return value of add() must be of the type integer, float returned