جهت یادآوری کاربرد Loop (حلقه) در زبانهای برنامهنویسی، بایستی بگوییم که اساساً از حلقهها زمانی استفاده میشود که بخواهیم بلوکی از کد را بارها و بارها اجرا کنیم تا زمانی که شرط خاصی برقرار شده و اجرای اسکریپت متوقف گردد. پیش از این با حلقههایی از جنس foreach و for در زبان PHP آشنا شدیم؛ حال در این آموزش قصد داریم تا به معرفی ساختار و کاربرد حلقهٔ while بپردازیم. به طور کلی ساختار این حلقه به صورت زیر است:
while (condition) {
//Code block to be executed
}
برخلاف حلقهٔ for که ساختار پیچدهای داشت، while را میتوان به نوعی سادهترین نوع حلقهها در این زبان قلمداد کرد. در حقیقت، در ابتدای هر بار اجرای حلقه، Condition یا به عبارتی شرط در نظر گرفته شده چک میشود و مادامی که این شرط به اصطلاح True باشد، اجرای این اسکریپت ادامه خواهد یافت و به محض False شدن شرط، اجرای حلقه متوقف خواهد شد. اگر بخواهیم به شکلی بصری به این روند نگاه کنیم، خواهیم داشت:
همانطور که از فلوچارت فوق مشخص است، اگر شرط از ابتدا برقرار نباشد، هرگز اسکریپتهای قرار گرفته داخل علائم { } اجرا نخواهند شد.
به خاطر داشته باشید |
از یک دید کلی، تفاوت مابین حلقههای for و while را میتوان اینگونه توصیف کرد که for زمانهایی به کار میآید که از قبل میدانیم چند دفعه قرار است تا بلوک کد مد نظر اجرا گردد اما چنانچه ندانیم تعداد اجرای کد چند بار است، مثلاً زمانی که دادهها را از دیتابیس فِچ (فراخوانی) میکنیم، بهتر است که از while استفاده نماییم اما این نکته را هم فراموش نکنیم که همواره میتوان حلقههای مختلف را به جای یکدیگر به کار برد. |
حال ببینیم کاربرد حلقهٔ while به چه شکل است. برای این منظور، در اسکریپتی که در ادامه مشاهده میکنید قصد داریم تا با استفاده از حلقهٔ while اعداد ۱ تا ۱۰ بشماریم:
$counter = 1;
while ($counter <= 10) {
echo "I`ve counted to $counter<br>";
$counter++;
}
echo "All done!";
ابتدا متغیری تحت عنوان counter$ با مقدار پیشفرض ۱ تعریف کردهایم؛ سپس به عنوان شرط حلقهٔ while گفتهایم مادامی که مقدار این متغیر کوچکتر یا مساوی با ۱۰ بود، تکرار اسکریپتهای نوشتهشده داخل { } ادامه یابد. پس از چاپ کردن مقدار counter$ با استفاده از دستور echo، پیش از پایان یافتن هر بار اجرای کد، در خط چهارم یک واحد به مقدار این متغیر اضافه کردهایم. به عنوان خروجی هم خواهیم داشت:
I`ve counted to 1
I`ve counted to 2
I`ve counted to 3
I`ve counted to 4
I`ve counted to 5
I`ve counted to 6
I`ve counted to 7
I`ve counted to 8
I`ve counted to 9
I`ve counted to 10
All done!
در واقع شرط قرار گرفته در این حلقه True است تا زمانی که مقدار متغیر counter$ برابر با ۱۱ شود که مسلماً در این صورت شرط False شده و از حلقه خارج خواهیم شد.