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;
برای ارسال نظر لطفا ابتدا وارد حساب کاربری خود شوید. صفحه ورود و ثبت نام