دستور for و foreach در PHP

دستور for و foreach در php
دستور for و foreach در php

آموزش طراحی سایت با پی اچ پی – حلقه for و foreach

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

 

دستور for

دستور for در پی اچ پی زمانی مورد استفاده قرار می گیرد که بخواهیم قطعه کدی را به دفعات مورد نیاز تکرار کنیم. در این دستور تعداد دفعات چرخش حلقه معین است و توسط برنامه نویس مشخص می‌شود.

 

ساختار دستور for

for (init counter; test counter; increment counter) {
    code to be executed;
}

  • init counter : شمارنده ی ابتدای حلقه، یا مقدار دهی اولیه شمارنده که فقط بار اول اجرا و خوانده می‌شود.
  • test counter : نگهدارنده‌ی انتهای حلقه. در هر بار چرخش حلقه ، مقدار شمارنده با این مقدار مقایسه می گردد و اگر True  بود حلقه ادامه می یابد در غیر این صورت (False) حلقه پایان می‌یابد.
  • increment counter : افزاینده‌ی شمارنده‌ی حلقه

 

توجه ! increment counter  می تواند در هر بار افزایش واحد ، بیش از یک واحد را به شمارنده ی حلقه اضافه کند.

 

مثال زیر اعداد بین 0 تا 10 را چاپ می کند.

<?php 
for ($x = 0; $x <= 10; $x++) {
    echo "The number is: $x <br>";
} 
?>

خروجی دستور بالا :

for output
خروجی دستور for

پیمایش حلقه بالا: حلقه بالا 10 بار اجرا می‌شود و ما یک بار دستور بالا را Trace (ردیابی کردن) می‌کنیم تا متوجه شویم چه اتفاقی افتاده است. وارد حلقه for می‌شویم و مقدار دهی اولیه شمارنده را یعنی X = 0 را می‌خوانیم، و حال بررسی می‌شود که آیا X کوچیک‌تر از 10 می‌باشد؟ اگر پاسخ مثبت است وارد دستورات می‌شود و دستور  echo "The number is: $x <br>"; را اجرا می‌کند و مقدار X که صفر است را چاپ می‌کند یعنی خروجی ما می‌شود: The number is: 0
سپس افزاینده حلقه اجرا می‌شود و یک مقدار به X اضافه می‌کند و X = 1 می‌شود و حال دوباره شرط بررسی می‌شود یعنی آیا X کوچیک تر از 10 می‌باشد؟ و …
توجه داشته باشید که مقدار اولیه شمارنده یعنی X = 0 فقط یک بار و در همان بار اول اجرا و خوانده می‌شود و دفعات بعدی دیگر مقدار X فرق کرده و از این مقدار اولیه فراخوانی نمی‌شود.

دستور Foreach

این دستور فقط بر روی آرایه ها اعمال می‌شود. یعنی به ازای هر عنصر از آرایه قطعه کد شما را اجرا می‌کند. جهت کسب اطلاعات بیشتر درباره آرایه ها به پست آرایه ها در PHP مراجعه نمایید.

ساختار دستور Foreach

 

foreach ($array as $value) {
code to be executed;
}

 

  • array$ : نام آرایه
  • value$ : متغیری دلخواه : در هر بار چرخش حلقه عنصر مورد نظر در این متغیر قرار می گیرد و دستورات روی آن اعمال می‌شود . با هر بار چرخش حلقه، عنصر بعدی در این متغیر جایگزین می‌شود.

 

در مثال زیر می خواهیم با استفاده از دستور foreach تمامی مقادیر آرایه را چاپ کنیم .

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

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

 

خروجی دستور بالا :

خروجی دستور foreach
خروجی دستور foreach

 

 

 

 

 

 

 

حلقه foreach بالا فقط 4 بار اجرا می‌شود چرا که درون آرایه array دارای 4 مقدار می‌باشد و در هر بار اجرای حلقه مقدار $value به ترتیب رنگ‌ها تغییر می‌کند مثلا در اجرای حلقه اول $value = red می‌باشد.

دوستان عزیز، در این جلسه از آموزش php با موضوعات دستور for  و دستور foreach در php نیز به پایان رسید. درصورتی که سوالاتی پیرامون حلقه های for و foreach داشتید حتما در نظرات مطرح کنید. موفق باشید.

 

منبع مثال ها از w3schools

فیلم آموزشی asp.net core 2

نسرين ولی خانی
کارشناسي نرم افزار علاقمند به برنامه نويسی

فیلم آموزشی asp.net core 2

2 نظر

2 پاسخ

  1. سلام من میخام از حلقه ی foreach برا باز کردن چنتا لینک همزمان استفاده کنم،
    مطمعن نیستم این فکرم درست باشه یانه!
    مثلا اگه 3 تا فایل داشته باشیم که هرستاشون نیاز به کرون جاب 10 دیقه ای داشته باشن، بجای اینکه روی هرستا فایل کرون جاب ده دیقه ای ست کنیم، لینک ادرس ستا فایلو توی یه ارایه میریزیم و با استفاده از حلقه ی foreach همشونو میریزیم تو متغیر urls و اینجوری عمل میکنیم :
    file_get_contents(“$urls”);
    و روی فایلی که این کدا توش نوشته شدن یه کرون جاب ده دیقه ای ست میکنیم
    لطفا نظر ، پیشنهاد یا راهنماییتونو به ایمیلم ارسال کنین

    1. سلام محمد جان، خب کاری که داری بررسی می‌کنی درسته. میتونی یه آرایه مشخص کنی و بعدش از foreach استفاده کنی. داخل آرایه اسم فایل ها رو بزاری و از file_get_contents لینک ها رو بگیری.
      بعدش حالا میتونی طبق گفته خودت همون کرون جابز رو هم ست کنی که کارت هر ۱۰ دقیقه انجام بشه.
      موفق باشی.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد.

حداکثر حجم فایل برای آپلود: 1 مگابایت. فایل‌های مجاز برای آپلود: عکس, ویس, ویدیو, ورد یا پی دی اف, فایل متنی, زیپ. شما می‌تونید برای بهتر پرسیدن سوالتون، عکس یا ویس یا حتی فیلم در بخش نظرات میزفا آپلود کنید. برای ضبط ویس می‌تونید از خود واتس آپ استفاده کنید و بعد اینجا آپلود کنید و برای ارسال عکس هم کافی هست اسکرین شات بگیرید. Drop file here

با موفقیت ثبت شد، میزفا از شما برای عضویت در خبرنامه هفتگی تشکر میکند.

عضویت در خبرنامه هفتگی برای دریافت:

  • فیلم و مقاله رایگان سئو
  • آموزش‌های UX ، GA و GTM
  • مقاله های تخصصی ASP.NET Core
  • اطلاع رسانی از محصولات
فیلم آموزشی asp.net core 2
ترک میزفا خوب نیست!
معرفی جامع‌ترین ابزار سئو در ایران
بالای ۱۰ هزار عضو
PHZpZGVvIHdpZHRoPSI2MDAiIGhlaWdodD0iMzUwIiBwb3N0ZXI9Imh0dHBzOi8vbWl6ZmEuY29tL2Jsb2cvd3AtY29udGVudC91cGxvYWRzLzIwMjMvMDUvcG9zdGVyLW1pemZhLXRvb2xzLXZpZGVvLW1pbi5wbmciIGNvbnRyb2xzIHByZWxvYWQ9Im5vbmUiPiANCiAgIDxzb3VyY2Ugc3JjPSJodHRwczovL21pemZhLmNvbS9ibG9nL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDIzLzA1L21pemZhX3Rvb2xzXzcyMHAubXA0IiB0eXBlPSJ2aWRlby9tcDQiPg0KPC92aWRlbz4=