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>
আউটপুট
উপরের পিএইচপি প্রোগ্রামের আউটপুট হবে −
object(Generator)#1 (0) { }ABCstring(10) "gen-return"