PHP – حلقه (foreach Loop)

حلقه foreach در PHP

تعریف

حلقه foreach برای تکرار درون یک آرایه یا خصوصیات یک شیء استفاده می‌شود. این نوع حلقه به ویژه برای کار با آرایه‌ها مفید است و امکان دسترسی به کلیدها و مقادیر را فراهم می‌کند.

حلقه foreach روی آرایه‌ها

سینتکس پایه
foreach ($array as $value) {
  // بلوک کد
}

در این سینتکس، $value در هر تکرار به مقدار جاری از آرایه $array اختصاص داده می‌شود.

مثال

چاپ آیتم‌های یک آرایه با استفاده از حلقه foreach:

$colors = array("red", "green", "blue", "yellow");

foreach ($colors as $x) {
  echo "$x <br>";
}

توضیح: در هر تکرار، مقدار فعلی از آرایه $colors به متغیر $x اختصاص داده شده و سپس چاپ می‌شود.

کلیدها و مقادیر

برای آرایه‌های انجمنی (Associative Arrays)، می‌توانید هم کلید و هم مقدار را در حلقه foreach دریافت کنید.

مثال

چاپ کلیدها و مقادیر یک آرایه انجمنی:

$members = array("Peter"=>"35", "Ben"=>"37", "Joe"=>"43");

foreach ($members as $key => $value) {
  echo "$key : $value <br>";
}

توضیح: در این مثال، $key به کلید و $value به مقدار هر عنصر از آرایه $members اختصاص داده شده است.

حلقه foreach روی اشیاء

مثال

چاپ نام‌ها و مقادیر خصوصیات یک شیء:

class Car {
  public $color;
  public $model;
  public function __construct($color, $model) {
    $this->color = $color;
    $this->model = $model;
  }
}

$myCar = new Car("red", "Volvo");

foreach ($myCar as $property => $value) {
  echo "$property: $value <br>";
}

توضیح: در این مثال، $property به نام خصوصیت و $value به مقدار آن اختصاص داده می‌شود.

دستور break

با استفاده از دستور break می‌توانید اجرای حلقه را متوقف کنید حتی اگر به انتهای حلقه نرسیده باشید.

مثال

متوقف کردن حلقه وقتی که $x برابر با “blue” است:

$colors = array("red", "green", "blue", "yellow");

foreach ($colors as $x) {
  if ($x == "blue") break;
  echo "$x <br>";
}

توضیح: در این مثال، وقتی که مقدار $x برابر با “blue” می‌شود، حلقه با استفاده از دستور break متوقف می‌شود.

دستور continue

با استفاده از دستور continue می‌توانید تکرار جاری را متوقف کرده و به تکرار بعدی بروید.

مثال

پرش به تکرار بعدی اگر $x برابر با “blue” باشد:

$colors = array("red", "green", "blue", "yellow");

foreach ($colors as $x) {
  if ($x == "blue") continue;
  echo "$x <br>";
}

توضیح: در این مثال، وقتی که مقدار $x برابر با “blue” می‌شود، دستور continue باعث می‌شود که این تکرار نادیده گرفته شده و به تکرار بعدی برویم.

استفاده از foreach با ارجاع

تغییرات در آرایه اصلی

به طور پیش‌فرض، تغییراتی که درون حلقه foreach روی آیتم‌های آرایه انجام می‌دهید، بر روی آرایه اصلی تاثیر نمی‌گذارد.

مثال

تغییر مقدار آیتم‌های آرایه درون حلقه:

$colors = array("red", "green", "blue", "yellow");

foreach ($colors as $x) {
  if ($x == "blue") $x = "pink";
}

var_dump($colors);

در این مثال، تغییر مقدار “blue” به “pink” درون حلقه، تغییراتی را در آرایه اصلی ایجاد نمی‌کند.

ارجاع به آرایه اصلی

با استفاده از علامت & می‌توانید آیتم‌های آرایه را به صورت ارجاعی تغییر دهید، که باعث می‌شود تغییرات درون حلقه بر روی آرایه اصلی اعمال شود.

مثال

تغییر مقادیر آرایه با استفاده از ارجاع:

$colors = array("red", "green", "blue", "yellow");

foreach ($colors as &$x) {
  if ($x == "blue") $x = "pink";
}

var_dump($colors);

در این مثال، تغییر مقدار “blue” به “pink” بر روی آرایه اصلی تاثیر می‌گذارد.

سینتکس جایگزین

حلقه foreach را می‌توان با استفاده از endforeach به صورت زیر نوشت:

مثال

چاپ آیتم‌های یک آرایه با استفاده از سینتکس جایگزین:

$colors = array("red", "green", "blue", "yellow");

foreach ($colors as $x) :
  echo "$x <br>";
endforeach;

توضیح: این سینتکس برای پیاده‌سازی کدهای PHP در فایل‌های HTML مفید است و می‌تواند خوانایی را افزایش دهد.

پست های مرتبط

مطالعه این پست ها رو از دست ندین!
JavaScript - رویدادها (Events)

JavaScript – رویدادها (Events)

رویدادهای HTML رویدادها در HTML، “اتفاقاتی” هستند که برای عناصر HTML رخ می‌دهند. این اتفاقات می‌توانند ناشی از کار...

بیشتر بخوانید
JavaScript - سازنده‌های شیء (Object Constructors)

JavaScript – سازنده‌های شیء (Object Constructors)

ساخت آبجکت با تابع سازنده (Object Constructor Function) برای ساخت چندین آبجکت مشابه، از تابع سازنده استفاده می‌شود. این...

بیشتر بخوانید
JavaScript - نمایش شیء (Object Display)

JavaScript – نمایش شیء (Object Display)

نحوه نمایش آبجکت‌ها در جاوااسکریپت هنگام نمایش یک آبجکت جاوااسکریپت به صورت مستقیم، خروجی معمولاً به شکل [object Object]...

بیشتر بخوانید

نظرات

سوالات و نظراتتون رو با ما به اشتراک بذارید

برای ارسال نظر لطفا ابتدا وارد حساب کاربری خود شوید.