جملات شرطی یک یا چند شرط را می گیرند و بر اساس آن ها اعمال مختلفی انجام می دهند. معمولا زمانی که کدنویسی می کنید می خواهید بر اساس شرایط خاص اتفاقات خاصی صورت بگیرد و در همین مواقع نیز باید از جملات شرطی مانند if استفاده کنید. دستورات شرطی در php شامل موارد زیر هستند:
if
: اگر شرطی صحیح باشد، کد خاصی را اجرا می کند.if...else
: اگر شرطی صحیح باشد، کد خاصی را اجرا کرده و اگر غلط باشد کد دیگری را اجرا می کند.if...elseif...else
: در حالتی که بیشتر از دو شرط داریم از این دستور استفاده می کنیم.switch
: یکی از چندین بلوکه ی کد را اجرا می کند.شاید در ابتدا این توضیحات گیج کننده باشد اما جای نگرانی نیست. در ادامه ی این مقاله و مقالات بعد حتما با دستورات شرطی آشنا می شویم.
همانطور که گفتیم دستور if
اگر شرطی را صحیح بداند کد های مربوط به آن را اجرا می کند. ساختار کلی این دستور بدین شکل است:
if (condition) { code to be executed if condition is true; }
مثال زیر عبارت "!Have a good day" را در صورتی نمایش می دهد که زمان فعلی (ساعت) کمتر از 20 باشد:
<!DOCTYPE html> <html> <body> <?php $t = date("H"); if ($t < "20") { echo "Have a good day!"; } ?> </body> </html>
if...else
دستور if...else
اگر شرط صحیحی پیدا کند کد های مربوط به آن را اجرا می کند ولی اگر شرط غلط (false) باشد کد های دیگری را اجرا می کند. ساختار کلی این دستور به شکل زیر است:
if (condition) { code to be executed if condition is true; } else { code to be executed if condition is false; }
مثال زیر عبارت "!Have a good day" در صورتی نمایش داده می شود که زمان (ساعت) کمتر از 20 باشد و در غیر این صورت (اگر ساعت بیشتر از 20 بود) عبارت "!Have a good night" را نمایش می دهد:
<!DOCTYPE html> <html> <body> <?php $t = date("H"); if ($t < "20") { echo "Have a good day!"; } else { echo "Have a good night!"; } ?> </body> </html>
if...elseif...else
دستور if...elseif...else
برای مواقعی استفاده می شود که تعداد شرط های ما از یک شرط بیشتر باشد. ساختار کلی این دستور به شکل زیر است:
if (condition) { code to be executed if this condition is true; } elseif (condition) { code to be executed if first condition is false and this condition is true; } else { code to be executed if all conditions are false; }
ما مثال قبلی خود را پیچیده تر کرده ایم. مثال زیر در صورتی که ساعت قبل از 10 باشد عبارت "!Have a good morning" و در صورتی که قبل از 20 باشد عبارت "!Have a good day" و در غیر این صورت (اگر هیچ کدام از دو شرط صحیح نبود) عبارت "!Have a good night" را نمایش خواهد داد:
<!DOCTYPE html> <html> <body> <?php $t = date("H"); echo "<p>The hour (of the server) is " . $t; echo ", and will give the following message:</p>"; if ($t < "10") { echo "Have a good morning!"; } elseif ($t < "20") { echo "Have a good day!"; } else { echo "Have a good night!"; } ?> </body> </html>
switch
دستور switch
بر اساس چندین شرط مختلف کار های مختلفی انجام می دهد. در این نوع دستور معمولا چندین بلوکه ی کد داریم که بر اساس وضعیت شرط یکی از آن ها انتخاب می شود. به ساختار کلی این دستور توجه کنید:
switch (n) { case label1: code to be executed if n=label1; break; case label2: code to be executed if n=label2; break; case label3: code to be executed if n=label3; break; ... default: code to be executed if n is different from all labels; }
بگذارید بیشتر توضیح دهم؛ در اکثر اوقات یک expression داریم (معمولا یک متغیر است) که در ساختار بالا با نام n به آن اشاره شده است و یک بار ارزیابی می شود. سپس مقدار n با مقادیر هر case مقایسه می شود. اگر این مقدار با یکی از case ها همخونی داشت، کد های داخل آن case اجرا می شوند.
همچنین دلیل استفاده از دستور break
پس از هر case این است که اگر n با یکی از case ها همخوانی داشت و کد های داخلش اجرا شد، اجرا همان جا متوقف شود. اگر از این دستور استفاده نکنیم و به طور مثال n با case دوم همخوانی داشته و کد های داخل case دوم اجرا شود اما از break استفاده نکرده باشیم، کد های تمام case های دیگر بدون توجه به همخوانی یا عدم همخوانیشان پشت سر هم اجرا می شوند! دستور default
نیز برای تعیین حالت پیش فرض است؛ این حالت زمانی اجرا می شود که هیچ کدام از case ها با n همخوانی نداشته باشند.
به مثال زیر دقت کنید:
<!DOCTYPE html> <html> <body> <?php $favcolor = "red"; switch ($favcolor) { case "red": echo "Your favorite color is red!"; break; case "blue": echo "Your favorite color is blue!"; break; case "green": echo "Your favorite color is green!"; break; default: echo "Your favorite color is neither red, blue, nor green!"; } ?> </body> </html>
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.