PHP के पिछले संस्करणों में, जनरेटर फ़ंक्शन भाव वापस करने में सक्षम नहीं थे, लेकिन PHP 5.5 से, जनरेटर वापसी अभिव्यक्ति को मौजूदा एक में जोड़ा जाता है। जेनरेटर रिटर्न एक्सप्रेशन का उपयोग करके, जेनरेटर के भीतर रिटर्न स्टेटमेंट का उपयोग करना आसान होता है और यह फाइनल एक्सप्रेशन का मान भी देता है।
- जनरेटर रिटर्न एक्सप्रेशन का उपयोग करके, हम केवल एक्सप्रेशन का मान वापस कर सकते हैं लेकिन संदर्भ वापस नहीं कर सकते। नए जेनरेटर::getReturn() . का उपयोग करके विधि, हम वह मान प्राप्त कर सकते हैं जिसका उपयोग जनरेटर फ़ंक्शन द्वारा परिभाषित मानों को प्राप्त करने के बाद किया जा सकता है।
- PHP 7 जनरेटर का उपयोग करके, हम जनरेटर रिटर्न एक्सप्रेशन से अंतिम मान वापस कर सकते हैं। हम $generator>getReturn() . का उपयोग करके रिटर्न एक्सप्रेशन प्राप्त कर सकते हैं क्योंकि PHP 7 एक जनरेटर द्वारा प्रोग्राम में को-रूटीन काउंटिंग से एक अंतिम मान वापस करने की अनुमति देता है जो जनरेटर को निष्पादित करने वाले क्लाइंट कोड द्वारा पकड़ सकता है।
जनरेटर रिटर्न एक्सप्रेशन:उदाहरण 1
<html> <head> <title> PHP 7 Feature : Generator Return Expressions </title> </head> <body> <?php $generator = (function(){ yield "five"; yield "six"; yield "seven"; return "eight"; }) (); foreach ($generator as $val){ echo $val, PHP_EOL; } echo $generator ->getReturn(), PHP_EOL; ?> </body> </html>
आउटपुट
उपरोक्त PHP प्रोग्राम का आउटपुट होगा:
five six seven eight
उपरोक्त PHP 7 प्रोग्राम के लिए स्पष्टीकरण -
- हम उपरोक्त कोड को एक संपादक में लिख सकते हैं और आवश्यक HTML कोड लिख सकते हैं जैसा कि ऊपर दिए गए उदाहरण में दिया गया है और HTML का बॉडी पार्ट जेनरेटर रिटर्न एक्सप्रेशन के लिए वास्तविक PHP 7 कोड इंजेक्ट करता है।
- दूसरा, $generator के रूप में संदर्भ वाले फ़ंक्शन को घोषित किया जाता है।
- $generator के संदर्भ में, हमने उपज "पांच", छह", "सात", और "आठ" को परिभाषित किया।
- आखिरकार, हम "$generator" फ़ंक्शन को अंत तक (PHP_EOL) दोहराते हैं और जेनरेटर रिटर्न एक्सप्रेशन के साथ यील्ड के मानों को प्रतिध्वनित करते हैं।
जनरेटर रिटर्न एक्सप्रेशन:उदाहरण 2
<html> <head> <title> PHP 7 Feature: Generator Return Expressions Example </title> </head> <body> <?php function gen(){ yield 'A'; yield 'B'; yield 'C'; return 'gen-return'; } $generator = gen(); var_dump($generator); foreach ($generator as $letter){ echo $letter; } var_dump($generator->getReturn()); ?> </body> </html>
आउटपुट
उपरोक्त PHP प्रोग्राम का आउटपुट होगा -
object(Generator)#1 (0) { }ABCstring(10) "gen-return"