آشنایی با ساختارهای شرطی IF در زبان PHP

PHP   
1 جولای 2014   

در برنامه نویسی php (یا زبان های دیگر تحت ویندوز) در بسیاری از مواقع نیاز است تا دستوراتی را در شرایط خاص انجام بدهیم (یا ندهیم). مثلا اگر مقدار متغیری برابر با عددی خاص بود عملی را انجام بدهد و در غیر این صورت آن را انجام ندهد و یا کار دیگری انجام بدهد!!!

برای انجام چنین اعمالی در زبان php (همچون دیگر زبان های دیگر برنامه نویسی ویندوز مثل c++) می توان از ساختار و دستورات شرطی if استفاده کرد. ساختار if به چند قسمت تقسیم می شود که در ادامه به توضیح هریک می پردازیم:

ساختار if ساده

ساختار if…else

ساختار if…elseif…else

ساختار if ساده

در if ساده تنها اگر شرطی برقرار باشد عملی را انجام می دهد و دیگر هیچ!!!

اگر شرط داخل پرانتز مقدار درست یا true را برگرداند دستورات داخل آکولاد ({}) را انجام می دهد و اگر مقدار نادرست یا false برگردانده شود دستورات مربوطه انجام نخواهد شد.

شکل کلی استفاده از آن به شکل زیر است:

همانطور که می بینید اگر شرط داخل پرانتز (condition) درست باشد کدهایی که میان آکولاد های باز و بسته قرار گرفته اند اجرا می شوند.

به مثال زیر توجه کنید:

خروجی:

The value of num is 10

در این مثال در قسمت شرط می سنجد که آیا متغیر num برابر با 10 است؟ که خروجی برابر true است زیرا این متغیر با مقدار 10 تنظیم شده است در نتیجه کدهای داخل پرانتر که چاپ یک رشته است اجرا می شوند. اگر این متغیر مقداری غیر از عدد 10 داشته باشد هیچ خروجی نخواهیم داشت.

توجه کنید که اگر پس از دستور if تنها یک خط شامل دستورات برای اجرا داشته باشیم (مانند مثال بالا) می توان کروشه ها را { } قرار نداد. یعنی مثال بالا را می توان به شکل زیر هم نوشت که خروجی یکسانی خواهیم داشت:

 

ساختار if…else

همانطور که از نام این ساختار هم پیداست، این ساختار علاوه بر این که در صورت درستی شرطی دستوراتی را اجرا می کند، در صورت درست نبودن شرط و برگشت مقدار false از داخل پرانتز دستوراتی به غیر از دستورات اولیه اجرا خواهند شد.

به عبارت دیگر اگر شرط برقرار باشد دستورات مقابل if اجرا می شوند و در غیر این صورت دستورات مقابل else اجرا خواهند شد.

اگر if را برابر معادل فارسی “اگر” در نظر بگیریم else برابر “در غیر این صورت” یا “وگرنه” خواهد بود.

شکل کلی استفاده از آن به شکل زیر است:

برای دستور else نیز مانند if، اگر دستورات تنها یک خط باشند می توان از آکولاد استفاده نکرد.

یک مثال:

در مثال بالا چک می کند که متغیر age که سن فرد است اگر بیش تر از 20 باشد پیام “شما بزرگسال هستید” را چاپ کند و در غیر این صورت پیام “شما هنوز جوان هستید” را چاپ می کند.

ساختار if…elseif…else

این ساختار کمی پیچیده تر از موارد پیشین است و می توان گفت که پیشرفته تر و در ادامه توضیحاتی است که تا به این جا داده ایم است.

در این جا دستور elseif به دستور if ساده اضافه شده است. تا به این جا بررسی کردیم که در صورت برقرار بودن شرط if دستوراتی اجرا بشود و در صورت بازگشت مقدار false از شرط بررسی شده دستورات دیگری اجرا شود.حالا می توانیم شرط های بیش تری را با استفاده از elseif بررسی کنیم. یعنی در صورت درست بودن شرط (یا شرط هایی) دستورات خاصی اجرا شود(دستور if) و درصورت درست بودن شرط دیگری دستورات دیگری اجرا شود و…(دستور elseif) و در صورت درست نبودن هیچ یک از شرط ها دستورات دیگری اجرا شود(دستور else).

شکل کلی آن به صورت زیر است:

توجه کنید که دستور elseif را می توان به صورت جدا نیز نوشت و تفاوتی با else if ندارد.

دستور elseif یا else if محدودیتی ندارد و می تواند به تعداد نامحدودی شرط ها را بررسی کند و دستورات مختلفی را در صورت برقرار بودن هر شرط انجام دهد.

به مثال زیر توجه کنید:

 

در این مثال با داشتن شماره ی روز هفته، نام روز را چاپ می کند که در مثال بالا خروجی به شکل زیر خواهد بود:

Today is Monday.