जनरेटर की अवधारणा PHP 7 के लिए नई नहीं है, क्योंकि यह पुराने संस्करणों में भी उपलब्ध थी। जनरेटर्स के साथ, इम्प्लीमेंटेशन इटरेटर इंटरफ़ेस को लागू करने वाले क्लास को लागू करने के ओवरहेड के बिना आसान हो जाता है। जनरेटर की मदद से, हम मेमोरी में सरणी का उपयोग किए बिना foreach कोड लिख सकते हैं। यह "मेमोरी लिमिट एक्सीड" त्रुटियों को खत्म करने में भी मदद करता है।
PHP 7 में जनरेटर डेलिगेशन की मदद से, हम स्वचालित रूप से दूसरे जनरेटर को डेलिगेट कर सकते हैं। यह उन सरणियों और ऑब्जेक्ट्स की भी अनुमति देता है जो ट्रैवर्सेबल इंटरफ़ेस को लागू करते हैं।
जनरेटर डेलिगेशन उदाहरण 1
<html> <head> <title> PHP 7 : Tutorialpoint </title> </head> <body>
<?php
function generator(){
yield "zero";
yield "one";
yield "two";
}
function generator1(){
yield "three";
yield "four";
yield "five";
}
function generator2(){
yield "six";
yield "seven";
yield "eight";
yield from generator();
yield "nine";
yield from generator1();
yield "ten";
}
foreach (generator() as $value){
echo $value, PHP_EOL;
}
foreach(generator2() as $value){
echo $value, PHP_EOL;
}
?>
</body> </html>
आउटपुट
zero one two six seven eight zero one two nine three four five ten
व्याख्या
- हम उपरोक्त कोड को एक एडिटर में लिख सकते हैं और ऊपर दिए गए उदाहरण में आवश्यक HTML कोड लिख सकते हैं और HTML का बॉडी पार्ट जनरेटर रिटर्न एक्सप्रेशन के लिए वास्तविक PHP 7 कोड इंजेक्ट करता है।
- दूसरे, "जनरेटर", "जनरेटर1", और "जनरेटर2" का उपयोग करके तीन फ़ंक्शन्स घोषित किए गए हैं।
- हमने जनरेटर फ़ंक्शन में यील्ड "जीरो", "वन", और "टू" परिभाषित किए।
- "जनरेटर1" फ़ंक्शन में, यील्ड "थ्री", "फोर", और "फाइव" परिभाषित किए गए हैं।
- 'जनरेटर2' फ़ंक्शन में, हमने यील्ड "सिक्स", "सेवन", और "आठ" को जनरेटर और जनरेटर 1 को जनरेटर2 में पढ़ने के लिए परिभाषित किया है।
- अंत में, हम "जनरेटर" और "जनरेटर2" फ़ंक्शन पर अंत तक पुनरावृति कर रहे हैं और यील्ड के मानों को इको कर रहे हैं।