جستجو برای:
  • خانه
  • مهارت های کامپیوتر
    • شبکه
    • ابزار های مایکروسافت افیس
    • ویندوز
  • برنامه نویسی و طراحی سایت
    • کد نویسی سمت کاربر
    • کد نویسی سمت سرور
    • cms های آماده
  • برنامه نویسی
    • اندروید
    • #C
    • بازی سازی
    • جاوا
    • پایتون
  • سورس کد ها
    • پروژه آماده اندروید
    • پروژه اماده unity
    • پروژه آماده سی شارپ
    • پروژه آماده طراحی سایت
  • تماس با ما
  • درباره ما
 
  • 02128423771 - 08736212195
  • info@zarrinlearn.com
  • بلاگ
  • تماس با ما
  • درباره ما
سایت اموزشی زرین لرن
  • خانه
  • مهارت های کامپیوتر
    • شبکه
    • ابزار های مایکروسافت افیس
    • ویندوز
  • برنامه نویسی و طراحی سایت
    • کد نویسی سمت کاربر
    • کد نویسی سمت سرور
    • cms های آماده
  • برنامه نویسی
    • اندروید
    • #C
    • بازی سازی
    • جاوا
    • پایتون
  • سورس کد ها
    • پروژه آماده اندروید
    • پروژه اماده unity
    • پروژه آماده سی شارپ
    • پروژه آماده طراحی سایت
  • تماس با ما
  • درباره ما
0

ورود و ثبت نام

بلاگ

سایت اموزشی زرین لرنبلاگمقالاتPHP Iterables

PHP Iterables

15 اسفند 1403
ارسال شده توسط سمیرا خانی
مقالات
34 بازدید

در PHP، iterable (قابل تکرار) به هر ساختاری گفته می‌شود که بتوان آن را با foreach پیمایش کرد. یک iterable می‌تواند یک آرایه یا یک شیء باشد که رابط Traversable را پیاده‌سازی کرده است (مانند Iterator یا Generator).


۱. تعریف نوع iterable در توابع

از نسخه PHP 7.1، می‌توان از نوع iterable در توابع استفاده کرد تا هم آرایه‌ها و هم اشیایی که Traversable را پیاده‌سازی می‌کنند، پذیرفته شوند.

مثال:

function printIterable(iterable $items): void {

           foreach ($items as $item) {

                   echo $item . PHP_EOL;

           }

}

$arr = [1, 2, 3, 4];

printIterable($arr);

۲. بازگرداندن یک مقدار iterable از تابع

یک تابع می‌تواند مقدار iterable بازگرداند:

function getNumbers(): iterable {

        return [10, 20, 30, 40];

}

foreach (getNumbers() as $num) {

           echo $num . PHP_EOL;

}

۳. استفاده از Generator برای بهینه‌سازی حافظه

Generator با استفاده از yield، مقداردهی را به‌صورت تنبل (lazy) انجام می‌دهد و در مصرف حافظه بهینه‌تر است:

function generateNumbers(): iterable {

        for ($i = 1; $i <= 5; $i++) {

              yield $i;

       }

}

foreach (generateNumbers() as $num) {

      echo $num . PHP_EOL;

}

۴. استفاده از Traversable و Iterator

Traversable یک رابط (interface) پایه برای اشیایی است که می‌توان آن‌ها را در foreach پیمایش کرد. پیاده‌سازی‌های رایج شامل موارد زیر است:

  • Iterator
  • IteratorAggregate

مثال: پیاده‌سازی Iterator

class MyIterator implements Iterator {

      private $items = [“A”, “B”, “C”];

      private $index = 0;

public function current() { return $this->items[$this->index]; }

public function key() { return $this->index; }

public function next() { $this->index++; }

public function rewind() { $this->index = 0; }

public function valid() { return isset($this->items[$this->index]); }

}

$it = new MyIterator();

foreach ($it as $key => $value) {

          echo “$key: $value\n”;

}

۵. استفاده از IteratorAggregate

به جای پیاده‌سازی Iterator، می‌توان از IteratorAggregate استفاده کرد که تنها نیاز به تعریف یک متد دارد: getIterator().

class MyCollection implements IteratorAggregate {

         private $data = [“X”, “Y”, “Z”];

public function getIterator(): Traversable {

         return new ArrayIterator($this->data);

         }

}

$collection = new MyCollection();

foreach ($collection as $item) {

       echo $item . PHP_EOL;

}

خلاصه

✅ iterable به معنی داده‌هایی است که قابل پیمایش در foreach هستند.
✅ Generators (yield) برای پردازش داده‌های بزرگ بدون مصرف زیاد حافظه کاربرد دارند.
✅ Iterator امکان ساخت اشیای سفارشی برای پیمایش را فراهم می‌کند.
✅ IteratorAggregate یک روش ساده‌تر برای ایجاد اشیای قابل پیمایش است.

برچسب ها: PHP Iterables،تعریف نوع iterable در توابع،بازگرداندن یک مقدار iterable از تابع
در تلگرام
کانال ما را دنبال کنید!
Created by potrace 1.14, written by Peter Selinger 2001-2017
در آپارات
ما را دنبال کنید!

مطالب زیر را حتما مطالعه کنید

HTML Computer Code Elements
HTML Responsive Web Design
HTML Layout Elements and Techniques
HTML – The Head Element
HTML File Paths
HTML JavaScript

دیدگاهتان را بنویسید لغو پاسخ

جستجو برای:
دسته‌ها
  • مقالات
نوشته‌های تازه
  • HTML Computer Code Elements
  • HTML Responsive Web Design
  • HTML Layout Elements and Techniques
  • HTML – The Head Element
  • HTML File Paths
درباره زرین لرن

ما برند زرین لرن را نامگذاری کردیم، زیرا برای ما بهترین علامت های تجاری ساده هستند. مارک ها رشد می کنند در توانایی آنها درک می شود.

  • کردستان - سقز - خیابان جمهوری - شرکت نو آوران زرین هور افزار
  • 08736212195
  • info@zarrinlearn.com
فهرست سفارشی
  • صفحه اصلی اول
  • بلاگ
  • تماس با ما
  • حساب کاربری من
  • درباره ما
  • سبد خرید
  • فروشگاه

طراحی شده توسط گروه فنی مهندسی زریم هور

ورود

رمز عبور را فراموش کرده اید؟

هنوز عضو نشده اید؟ عضویت در سایت