تالار گفتمان nCIS.ir

نسخه‌ی کامل: getIterator
شما در حال مشاهده نسخه آرشیو هستید. برای مشاهده نسخه کامل کلیک کنید.
درود آقای شهرکی
در پکیج شرح دادید که اگر خواستیم از آرایه بعنوان object استفاده کنیم بدین شکل عمل کنیم :
$a = array(
'Name' => 'Tabesh',
'Family' => 'Rouhani',
'Grade' => 20,
);
$obj = new ArrayObject($a);
$obj->offsetSet('Gender' , 'Male');
$obj->offsetSet('Job' ,'Programmer');
foreach($obj as $key=>$val){
echo $key . ' => ' . $val . '<br/>'.PHP_EOL;
}
خب این کد جواب میدهد . در حالی که در حلقه foreach باید بدین شکل مینوشتم :
foreach($obj->getIterator() as $key=>$val){
echo $key . ' => ' . $val . '<br/>'.PHP_EOL;
}
حالا میخواهم ببینم که این getIterator بود و نبودش در یک حد هست ؟ یا جاهای دیگر کاربرد دارد ؟
خیر بود و نبودش یکی نیست. فقط کلاسهایی که یک Iterator (از هر نوعی) رو پیاده سازی میکنن چنین متدی رو دارن. ازطرفی PHP برای سادگی کار اومده وقتی از شئ توی foreach استفاده میکنید، خودش بصورت ضمنی getIterator رو صدا میزنه.