تماس با ما

موبایل: 2565 038 0912

دفتر تهران: 2565 2842 021

دفتر گرگان: 2565 3233 017


حلقه for و while در php-قسمت ششم

در مطالب قبلی از بخش آموزش مقدماتی php، تا حدود زیادی مسیرمان را به سمت یادگیری این زبان پرکاربرد در برنامه نویسی وب هموار کردیم، پس از آشنایی با متغیرها، عملگرهای محاسبه و مقایسه، دستورات شرطی if و else و نحوه کار با switch و case، این بار نوبت به آموزش حلقه های for و while در php است؛ از آنجایی که اصولا حلقه ها در زبان های برنامه نویسی و به طور خاص در برنامه نویسی به زبان php، کاربرد فراوان دارند، یادگیری و درک این بخش می تواند به روند پیشرفت آموزش، بسیار کمک کند، در ادامه خواهیم گفت که چرا و چگونه باید از آنها در کدنویسی خود استفاده کنیم.

حلقه (Loop) چیست؟
در برنامه نویسی php (و شاید در اکثر زبان های برنامه نویسی)، از حلقه ها (Loops) برای گرفتن خروجی در یک دور تکرار، با مقادیر متفاوت استفاده می شود، البته این بحث بی شباهت با توابع نیست، ولی حلقه (Loop)، چند فرق اساسی با تابع (Function) دارد، از جمله اینکه در حلقه در هر دور، معمولا یک خروجی به مرورگر ارسال می شود، در حالی که تابع در هر بار فراخوانی معمولا تنها یک خروجی ارسال می کند (مگر اینکه درون تابع از حلقه استفاده شود)، از طرفی حلقه ها متاثر از شرایط بیرون و درون خود رفتار می کنند، اما توابع تنها ممکن است چند ورودی از بیرون دریافت کنند، ولی در نهایت پردازش را با توجه به الگوی خود انجام می دهند؛ به هر صورت از بحث تئوری که بگذریم، در یک مثال ساده کاربرد حلقه در php مثل این است که به فرض به جای اینکه 10 بار یک عدد را به فرض با اعداد 1 تا 10 جمع کنیم (یعنی برای هر بار یک کد بنویسیم و خروجی بدهیم)، در یک حلقه، ده دور عمل جمع را با مقادیر و خروجی متفاوت تکرار می کنیم، یا تا زمانی که حاصل جمع ما به 10 نرسیده است، تکرار را در حلقه ادامه می دهیم.
انواع حلقه در php
چند نوع حلقه در php وجود دارد که با به حساب آوردن همه آنها، می توان تعداد حلقه در php را در چهار دسته خلاصه کرد؛ حلقه while و زیر مجموعه آن یعنی do while، حلقه for وهم خانواده آن یعنی foreach، حلقه while یک دور حلقه را تا زمانی که شرطی (condition) درست (true) باشد، تکرار می کند، زیر مجموعه آن یعنی do while نیز ساختاری شبیه به while دارد، با این تفاوت که ابتدا، دور حلقه do یک بار اجرا می شود و سپس شرط while بررسی می گردد، حلقه for برعکس while، درون خود شرطی را بررسی می کند و تا زمانی که شرط درست باشد، تکرار را ادامه می دهد، هم خانواده آن یعنی foreach نیز برای کار با آرایه ای از اطلاعات و متغیرها کاربرد دارد، در حالت معمول استفاده از for کفایت می کند، اما زمانی که می خواهید به فرض اطلاعات را از پایگاه داده خروجی بگیرید یا با یک فرم با قابلیت انتخاب فیلدهای چندگانه کار کنید، باید حتما از foreach استفاده نمائید، چرا که داده های شما به صورت آریه ای از اطلاعات هستند و باید با کلید و مقدار، جداگانه و تک به تک مقایسه و خروجی داده شوند، در ادامه به طور مفصل تر در مورد کاربرد حلقه ها خواهیم گفت.
حلقه while در php
ساختار حلقه while در php به اینصورت است که با بررسی یک شرط، تا هر زمان که مقدار برگردانده شده توسط آن درست (true) باشد، مقادیر داخل {} اجرا می شود، در مثال ساده زیر، یک حلقه را تا زمانی که تعداد کاربران به 5 نرسیده ادامه داده ایم و خروجی فرضی از آن گرفته ایم.


<?php
//مقادیر پیش فرض برای متغیر
$users = 5;
//حلقه while
while ($users > 0){
    echo "کاربر شماره $users <br />";
    $users--;
}
?>

خروجی کد بالا به صورت زیر خواهد بود.


کاربر شماره 5
کاربر شماره 4
کاربر شماره 3
کاربر شماره 2
کاربر شماره 1

توضیح:
- ابتدا برای متغیر فرضی users یک مقدار پیش فرض قرار می دهیم تا بعدا در حلقه while یک شرط برای آن تعیین کنیم.
- سپس در قسمت مربوط به حلقه while، بررسی می کنیم، تا زمانی که مقادیر متغیر users بزرگتر از صفر باشد، کد داخل {} اجرا شود.
- درون حلقه یک دستور خروجی echo نوشته ایم که در هر دور (loop)، مقادیر را چاپ می کند و در قسمت آخر، در هر دور حلقه یک واحد از متغیر users کاسته می شود و این کار تا زمانی که مقادیر این متغیر بزرگتر از صفر، یعنی یک است، ادامه می یابد.
- دقت کنید، چون متغیر فرضی ما در این مثال یک عدد بود، می توانیم بر روی آن اعمال ریاضی مثل جمع، تفریق و... را انجام دهیم، در برنامه نویسی سطح بالاتر، موقعیت هایی پیش می آید که انواع متفاوتی از داده ها را باید با توجه به نوع آنها بررسی کنیم.
مثالی دیگر از کاربرد حلقه while در php


<?php
//مقادیر پیش فرض برای متغیر
$users = 5;
$admin = 1;
//حلقه while
while ($users > 0){
    //حلقه تو در تو
    while($admin > 0){
        echo "مدیر سایت، خوش آمدید<br />";
        $admin--;
    }    
    echo "کاربر شماره $users خوش آمدید<br />";
    $users--;
}

خروجی کد بالا به صورت زیر خواهد بود.


مدیر سایت، خوش آمدید
کاربر شماره 5 خوش آمدید
کاربر شماره 4 خوش آمدید
کاربر شماره 3 خوش آمدید
کاربر شماره 2 خوش آمدید
کاربر شماره 1 خوش آمدید

توضیح:
- مثال بالا، نحوه استفاده از یک حلقه while درون حلقه ای دیگر به صورت تو در تو را نشان می دهد.
- فرمول و ساختار حلقه با کمی تامل قابل درک است، تنها چیزی که اینجا اضافه کرده ایم، متغیر admin و حلقه مربوط به آن است که در درون حلقه اصلی اجرا می شود.
- استفاده از این شیوه، یعنی حلقه های تو در تو در برنامه نویسی پیشرفته تر با php، کاربرد های خاص خودش را دارد.
حلقه do while در php
گاهی مواقع در دنیای برنامه نویسی وب با php، پیش می آید که بخواهیم یک حلقه را ابتدا یک بار خروجی دهیم (چه شرطی درست باشد و چه نباشد)، سپس بررسی کنیم که آیا شرایط ادامه حلقه مهیا است یا خیر، مفسر php بدین منظور از ساختار do while که بسیار شبیه while معمولی است بهره می گیرد، در do while دور اول حلقه، بدون هیچ پیش شرطی اجراء می شود، اما دورهای بعد مثل این است که به روال عادی حلقه while بازگشت کنیم، مثال زیر روشن است.


<?php
//مقادیر پیش فرض برای متغیر
$users = 0;
do{
    echo "کاربر شماره $users خوش آمدید<br />";
    $users--;
}
//حلقه while
while ($users > 0);
?>

مثال بالا با وجود اینکه در قسمت شرط while گفته ایم که تازمانی که متغیر users از صفر بزرگتر باشد و مقادیر این متغیر هم صفر است، اما خروجی زیر به مرورگر ارسال می شود.


کاربر شماره 0 خوش آمدید

حلقه for در php

استفاده از for در php نوعی دیگر از حلقه ها را شکل می دهد، از حلقه for زمانی استفاده می کنیم که بخواهیم به فرض به تعداد مشخصی دور تکرار، بدون وابستگی به شرایط بیرون حلقه داشته باشیم، در واقع ساختار حلقه ها در php (و در دیگر زبان های برنامه نویسی مشابه)، شباهت های زیادی به هم دارند، اما به منظورهای متفاوتی ایجاد شده اند، در حلقه while، معمولا بخش اصلی شرایط درست یا نادرست شدن یک شرط، در بیرون از حلقه اتفاق می افتد، اما در حلقه for تمام این اتفاقات در درون پارامترهای خود حلقه شکل می گیرد، اجازه بدهید موضوع را با یک مثال روشن کنیم.


<?php
//حلقه for
for ($users=1; $users <= 3; $users++){
    echo "کاربر شماره $users <br />";
}
?>

مثال بالا، خروجی زیر را تولید خواهد کرد.


کاربر شماره 1
کاربر شماره 2
کاربر شماره 3

توضیح:
- شیوه نگارش یا syntax حلقه for با while کمی متفاوت است، حلقه for در سه عبارت (expression)، ساختار اصلی خود را شکل می دهد، عبارت اول، همان مقادیر پیش فرض برای یک متغیر است، عبارت دوم، تعیین شرط برای خاتمه حلقه است و عبارت آخر، تغییرات مقادیر متغیر در هر دور حلقه است.
- عبارت users در مثال بالا، کاملا فرضی و انتخابی است، معمولا از عبارت i بدین منظور استفاده می کنند.
- دقت کنید که در برنامه نویسی، حلقه هایی که می نویسید، باید در یک مرحله ای به پایان برسند، اگر بررسی شرط حلقه همیشه درست (true) باشد، دور تکرار آن تا بی نهایت ادامه می یابد و این سبب ایجاد یک باگ یا نقض بزرگ در برنامه شما و نهایتا باعث از کار افتادن مرورگر کاربر یا سرور خواهد شد.
در مثال زیر، یک اشتباه عمدی کرده ایم و حلقه را تا بی نهایت ادامه داده ایم، با کمی دقت متوجه خواهید شد.


<?php
//حلقه for تکرار تا بی نهایت!
for ($i=0; $i >= 0; $i++){
    echo "کاربر شماره $i <br />";
}
?>

حلقه foreach در php
نوع دیگری از حلقه های هم خانواده با for با نام foreach برای کار با مقادیر آرایه ها کاربرد دارد، در برنامه نویسی وب، برخی ویژگی ها، ناگزیر به صورت آریه ای از اطلاعات قابل کنترل و پردازش هستند، به عنوان مثال، وقتی در فرم های html، یک فیلد با قابلیت انتخاب چند مقدار را ارسال می کنید، باید برای هر مقدار، یک بار پردازش در سرور انجام شود، تا تفکیک داده ها از هم میسر گردد، این کار در php با foreach انجام می شود، foreach در هر دور حلقه، یک کلید و مقدار از آرایه را پردازش می کند تا زمانی که شرایط ادامه دادن دور حلقه، درست یا true باشد، به مثال زیر توجه کنید.


<?php
$array = array(1=>'Arash', 2=>'Soraya', 3=>'Maryam', 4=>'Sadegh');
foreach ($array as $user) {
    $user = "$user به بخش آموزش php، خوش آمدید <br />";
    echo $user;
}
?>

خروجی مثال بالا به صورت زیر خواهد بود.


Arash به بخش آموزش php، خوش آمدید
Soraya به بخش آموزش php، خوش آمدید
Maryam به بخش آموزش php، خوش آمدید
Sadegh به بخش آموزش php، خوش آمدید

توضیح:
- حلقه foreach از دو شیوه نگارش (syntax) پشتیبانی می کند، هم به صورت:


$array as $user

و هم به صورت:


$array as $key => $user

- هر مقدار از آرایه ها، در هر دور حلقه، به عنوان ورودی دریافت می شوند و پس از اعمال پردازش تعیین شده، نوبت به عنصر بعدی می رسد، در مثال بالا، آرایه ما دارای چهار مقدار است، پس دور حلقه  foreach برای هر کدام، یک بار اجرا خواهد شد (for به معنی برای و each به معنی هر).
- درک صحیح نحوه عملکرد حلقه foreach، نیازمند آشنایی با مبحث آرایه ها در php است، لذا در اینجا به همین مقدار بسنده می کنیم.


سفارش طراحی سایت

سفارش طراحی سایت

google
yahoo
alexa
ebook
Baidu.com
Wikipedia
Blogger.com
Windows Live
Amazon.com
eBay
Bing
Ask
استانداری گلستان
f shdj, sefaresh, sefaresh .net, sefaresh.net, sthva, sthva nhj kj, sthva.kj, stthva.kj, xvhpd, آیفون, استفاده, اندروید, اپل, اپلیکیشن, اینترنت, باتری, بازار, بازی, دستگاه, دوربین, سامسونگ, سفارش, سفارش دات نت, سفارش دات نت sefaresh.net, سفارش.نت, سیستم, طراح وب, طراحي وب سايت, طراحی, طراحی وب سایت, فناوری, مایکروسافت, موبایل, هوشمند, کاربران, کمپانی, گلکسی, گوشی, گوشی هوشمند, گوگل

نمایش تمامی تگ ها
بسته ویژه مدارس مدارس
بسته ویژه پزشکان پزشکان
بسته ویژه مهندسین مهندسین