دستور While

ابتدایی ترین ساختار تکرار در PHP حلقه While است.ابتدا یک شرط را مورد بررسی قرار می دهد و تا زمانیکه شرط برقرار باشد کدهای درون بلوک اجرا می شوند. ساختار این حلقه به صورت زیر است :

while(condition)
{
    code to loop;
}

می بینید که ساختار While مانند ساختار if بسیار ساده است. ابتدا یک شرط را که نتیجه آن یک مقدار بولی است مینویسیم اگر نتیجه درست یا true باشد سپس کدهای داخل بلوک While اجرا می شوند. اگر شرط غلط یا false باشد وقتی که برنامه به حلقه While برسد هیچکدام از کدها را اجرا نمی کند. برای متوقف شدن حلقه باید مقادیر داخل حلقه While اصلاح شوند.

به یک متغیر شمارنده در داخل بدنه حلقه نیاز داریم. این شمارنده برای آزمایش شرط مورد استفاده قرار می گیرد و ادامه یا توقف حلقه به نوعی به آن وابسته است. این شمارنده را در داخل بدنه باید کاهش یا افزایش دهیم. در برنامه زیر نحوه استفاده از حلقه While آمده است :

   1:<?php
   2:
   3:    $number = 1;
   4:    while ($number <= 10)
   5:    {
   6:        echo 'Hello World!'.'<br/>';
   7:        $number++ ;
   8:    }
   9:
  10:?>
Hello World!
Hello World!
Hello World!
Hello World!
Hello World!
Hello World!
Hello World!
Hello World!
Hello World!
Hello World!

برنامه بالا 10 بار پیغام Hello World! را چاپ می کند. اگر از حلقه در مثال بالا استفاده نمی کردیم مجبور بودیم تمام 10 خط را تایپ کنیم. اجازه دهید که نگاهی به کدهای برنامه فوق بیندازیم. ابتدا در خط 3 یک متغیر تعریف و از آن به عنوان شمارنده حلقه استفاده شده است.سپس به آن مقدار 1 را اختصاص می دهیم چون اگر مقدار نداشته باشد نمی توان در شرط از آن استفاده کرد.

در خط 4 حلقه While را وارد می کنیم. در حلقه While ابتدا مقدار اولیه شمارنده با 10 مقایسه می شود که آیا از 10 کمتر است یا با آن برابر است. نتیجه هر بار مقایسه ورود به بدنه حلقه While و چاپ پیغام است. همانطور که مشاهده می کنید بعد از هر بار مقایسه مقدار شمارنده یک واحد اضافه می شود (خط 7). حلقه تا زمانی تکرار می شود که مقدار شمارنده از 10 کمتر باشد.

اگر مقدار شمارنده یک بماند و آن را افزایش ندهیم و یا مقدار شرط هرگز false نشود یک حلقه بینهایت به وجود می آید. به این نکته توجه کنید که در شرط بالا به جای علامت > از => استفاده شده است. اگر از علامت > استفاده می کردیم کد ما 9 بار تکرار می شد چون مقدار اولیه 1 است و هنگامی که شرط به 10 برسد false می شود چون 10 > 10 نیست. اگر می خواهید یک حلقه بی نهایت ایجاد کنید که هیچگاه متوقف نشود باید یک شرط ایجاد کنید که همواره درست (true) باشد.

while(true)
{
   //code to loop
}

این تکنیک در برخی موارد کارایی دارد و آن زمانی است که شما بخواهید با استفاده از دسترات break و return که در آینده توضیح خواهیم داد از حلقه خارج شوید.

لطفا اگر نظر، پیشنهاد و یا انتقادی در باره مطلب بالا دارید در قسمت زیر مطرح بفرمایید.