حلقه for و foreach در php

1396/1/18 علیرضا حاتمی نیا 263

php for foreach loop

مقدمه:

دوباره سلام خدمت شما علاقه مندان به آموزش های برنامه نویسی مخصوصا آموزش php
من علیرضا حاتمی نیا از وبسایت ilikephp با دوازدهمین قسمت از آموزش php در خدمت شما هستم. 
در جلسه قبل آموزش حلقه while و do while در php را مورد بررسی قرار دادیم و در این جلسه با یکی از پرکاربردترین دستورات حلقه ها یعنی آموزش حلقه for و foreach در php در خدمت شما هستیم. 

حلقه for در php :

به یاد دارید در جلسه پیش اجرای حلقه while مبتنی بر true بودن یک شرط بود. تفاوت حلقه while و for در اینجاست. حلقه for هنگامی استفاده می شود که در آن تکرار حلقه مشخص باشد و تمام دستورات و شروط در داخل خود حلقه اتفاق می افتد. 
به ساختار حلقه for دقت کنید :

for (init counter; test counter; increment counter) {
    code to be executed;
}
  • شمارنده init : این پارامتر معمولا به صورت بک متغیر تعریف می شود ولی می تواند به صورت دستور نیز تعریف شود. این پارامتر فقط یکبار در ابتدای حلقه اجرا می شود. Init شمارنده آغاز حلقه می باشد.
  • شمارنده condition : این پارامتر به صورت شرط یا شروط است که برای ادامه کار حلقه می باشد. تا هنگامی که مقدار این شرط true باشد حلقه به کار خود ادامه می دهد. 
  • شمارنده increment یا گام حلقه: این پارامتر دستوری ست که تعیین کننده گام حلقه می باشد. به این معنی که با کاهش یا افزایش مقدار شمارنده حلقه تعداد دفعات تکرار حلقه را تعیین می کند. 

مثال: در این مثال با استفاده از حلقه for اعداد زوج بین 1 تا 10 را چاپ می کنیم.

<?php
for($i=0;$i<=10;$i+=2){
echo $i;
}
?>

در مثال بالا گام نخست حلقه را از صفر و با متغیر $i=0 تعیین کردیم. تکرار حلقه تازمانی که متغیر $i کوچکتر مساوی 10 است ادامه پیدا می کند. $i+=2 را به عنوان گام حلقه تعیین کردیم که در هر بار اجرای حلقه 2 واحد به متغیر $i اضافه شود. 
پس در اولین اجرای حلقه متغیر $i برابر صفر است. شرط چک می شود. 0 کوچکتر از 10 است. پس دستور داخل حلقه اجرا می شود و عدد 0 چاپ می  شود. سپس 2 واحد به متغیر $i اضافه می شود و مقدار آن برابر 2 می شود و این روند تا زمانی که $i=10 می  شود ادامه دارد. مقدار 10 نیز چاپ می شود و 2 واحد به آن اضافه می شود و $i=12 می شود و شرط چک می شود و چون مقدار false برگردانده می شود از حلقه خارج می شود. 
نکته: در مثال بالا اگر متغیر $i را بیرون از حلقه چاپ کنیم مقدار 12 چاپ می شود. 

حلقه foreach در php : 

این حلقه فقط برای آرایه ها قابل استفاده است. با شکل کلی آرایه ها در جلسات بعدی بیشتر آشنا می شوید. تکرار حلقه foreach بر اساس تعداد خانه های آرایه مورد نظر تعیین می شود و می توانید دستورات را بر اساس مقادیر خانه های یک آرایه تکرار و اجرا کنید. 
شکل کلی foreach به شکل زیر است. 

foreach ( $array as $value )
    { 
دستور یا دستورات
    }  

مقدار $array همان آرایه مورد نظر است و $value در هر بار تکرار حلقه مقدار خانه آرایه را در خود جای می دهد. 
در مثال زیر مقدار خانه های هر آرایه را چاپ می کنیم.

<?php 
$names = array("ali", "simin", "hasan", "saman"); 

foreach ($names as $value) {
    echo "$value <br>";
}
?>

توجه داشته باشید که مقدار آرایه در $value کپی می شود و با تغییر $value مقادیر آرایه هیچ تغییری نمی کنند. اگر می خواهید با تغییر $value مقدار خانه های آرایه نیز تغییر کند می توانید کاراکتر & را در ابتدای $value اضافه کنید. 

علیرضا حاتمی نیا
طراح و برنامه نویس وب
طراحی وبسایت های واکنش گرا
طراحی و پیاده سازی سیستم مدیریت محتوا
سئو و بهینه سازی سایت