সংজ্ঞা এবং ব্যবহার
PHP 7.1 ভার্সন থেকে iterable নামে একটি নতুন সিউডো-টাইপ (pseudo-type) যোগ করা হয়েছে। Traversable ইন্টারফেস ইমপ্লিমেন্ট করা যেকোনো অবজেক্ট (যেমন অ্যারে) এই টাইপে অ্যাকসেপ্ট করা হয়। এই টাইপ foreach কনস্ট্রাক্ট বা একটি জেনারেটর ফাংশন ব্যবহার করে যা একবারে একটি মান যিল্ড (yield) করে।
সিনট্যাক্স
একটি ফাংশনে এর প্যারামিটার টাইপ হিসেবে iterable ব্যবহার করা যায় যাতে ফাংশনটি foreach স্টেটমেন্টে ব্যবহৃত মানগুলো গ্রহণ করতে পারে। যদি প্যারামিটার foreach লুপ সাপোর্ট না করে, তবে PHP পার্সার TypeError থ্রো করে।
উদাহরণ
<?php $arr1=array("PHP","Java","Python");
function myfunc (iterable $arr1){
foreach ($arr1 as $lang){
echo $lang . "\n";
}
}
myfunc($arr1); ?>
আউটপুট
এটি নিচের ফলাফল দেবে—
PHP Java Python
একটি PHP ফাংশন iterable ডেটা টাইপ (যেমন অ্যারে) রিটার্ন করতে পারে। রিটার্নড ভ্যালুর টাইপ যাচাই করতে is_iterable() ফাংশন ব্যবহার করা হয়।
উদাহরণ
<?php function newfunc ():iterable{
$arr2=[];
for ($i=1;$i<4;$i++){
$arr2[$i]=$i*2;
}
return $arr2;
}
$ret=newfunc();
var_dump (is_iterable($ret)); ?>
আউটপুট
এটি নিচের ফলাফল দেবে—
bool(true)
নিচে iterable রিটার্ন টাইপসহ একটি জেনারেটরের উদাহরণ দেওয়া হলো—
উদাহরণ
<?php function gen(): iterable {
yield 1;
yield 2;
yield 3;
}
gen(); ?>
PHP ভার্সন
Iterable সিউডো-টাইপ PHP 7.1-এ চালু করা হয়েছিল।