توی این قسمت از سری آموزشهای صفر تا صد پی اچ پی که میشه قسمت سوم، با مفهوم شرطها آشنا میشید و چندتایی مثال هم در مورد نحوه استفاده ازش میزنم.
توی برنامه نویسی مثل زندگی واقعی اگر بخوایم شرط و شروطی تعریف کنیم، از کلمه اگر استفاده میکنیم. مثلا:
اگر حمید بیاد امشب میریم رستوران!
اگر ایران این بازی رو ببره میره جام جهانی.
اگر نسرین و فاطمه نیومدن به جاش زهرا و عاطفه رو جایگزین میکنیم.
اگر شرایط جور باشه 100 میلیون میذارم تو بورس و ...!
پس هر وقت شرایطی پیش بیاد که از بین دو یا چندتا چیز بخوایم یکی رو انتخاب کنیم و یا یک کار رو انجام بدیم باید از شرطها استفاده کنیم.
ساده ترین و متداول ترین نوع شرط، شرطهائی هستند که با if و با تلفظ ایف نوشته میشن به شکل زیر:
<?php
if(شرط) {// کار مورد نظر}
?>
یعنی اول کلمه کلیدی ایف رو مینویسیم، بعد تو پرانتز شرطمون رو مشخص میکنیم و در صورتی که شرط برقرار باشه اون دستورات توی آکولاد {} جلوی ایف اجرا میشه.
مثال: میخوایم شرطی بنویسیم که اگر مقدار متغیرمون برابر با 20 شد کلمه برابر است چاپ بشه. پس کدها به این شکل باید نوشته بشن:
<?php
$number = 20;
if($number == 20) {
echo 'Barabar ast!';
}
?>
برای تست و اجرای کد بالا مثل همیشه برید به سایت sandbox.onlinephpfunctions.com.
توی کد بالا به علامت == میگن اپراتور مقایسهای، و اینجا برای تشخیص مساوی بودن مقدار متغیر number با عدد 20 به کار برده شده. توی پی اچ پی ما چندین مدل اپراتور داریم که لیستشون رو توی ادامه مطلب آوردم و کمی هم توضیح دادم.
دقت کنید من اینا رو اینجا میارم که فقط با شکل و شمایل و کاربردشون بصورت کلی آشنا بشید و نیاز نیست حفظ بشن، ولی ببینیدشون خوبه؛
آینده هرجایی چیز جدیدی گفتم در موردش حتما توضیح میدم.
دسته بندی کلی اپراتورها به این شکله: اپراتورهای ریاضی، اپراتورهای انتسابی، اپراتورهای منطقی و اپراتورهای مقایسه ای.
تو مثال اول گفتیم اگر عدد ذخیره شده توی متغیر number برابر با 20 بود چاپ کن که برابره، حالا اگه برابر نبود چی؟ طبق کد اول هیچ اتفاق دیگه ای نمیفته و چیزی چاپ نمیشه، ولی اگر بخوایم این حالت رو هم در نظر بگیرم و اصطلاحا هَندل کنیم باید از کلمه کلیدی else و با تلفظ اِلس و به معنای در "غیر اینصورت" استفاده بکنیم.
مثال: اگر عدد ذخیره شده کوچکتر از 17 بود جمله کوچکتر است چاپ بشه و در غیر این صورت جمله بزرگتر است.
<?php
$number = 19;
if ($number < 17) echo 'کوچکتر است';
else echo 'بزرگتر است';
?>
واضح بود؟ اینجا ما از یه اپراتور ریاضی یعنی علامت > استفاده کردیم برای تشخیص کوچک بودن عدد.
نکته: وقتی که بعد از شرط جلوی ایف فقط یه خط کد بنویسیم، نیاز به نوشتن آکولاد باز و بسته نداریم {}. ولی اگر تعداد خطوط کدها بیشتر شد باید اونا رو وسط {} بذاریم. برای بعد از کلمه else هم همین شکلیه.
مثال دوم: میخوایم برنامه ای بنویسیم که اگه عدد ذخیره شده توی متغیر بر 2 بخش پذیر بود اینو بهمون اعلام کنه و اگر نبود هم بگه که نیست!
<?php
$number = 6;
if($number % 2 == 0) echo 'بر 2 بخش پذیر است';
else echo 'بخش پذیر نیست';
?>
تو کد بالا از اپراتور % استفاده شد که برای گرفتن باقیمانده تقسیم دوتا عدد ازش استفاده میشه؛ اسمش هم اصطلاحا میگن ماد (Modulus).
فرقش با اپراتور تقسیم / یا اِسلش اینه که اسلش، عدد خروجی تقسیم رو بهمون میده، ولی % باقیمانده رو برمیگردونه؛ یعنی اگر بنویسیم 8/4 خروجی ما میشه 2 ولی اگر بنویسیم 8%2 خروجی ما میشه 0.
نکته مهم: زبانهای برنامه نویسی مثل php از سمت چپ به راست مسائل ریاضی رو حل میکنن. پس تو کد بالا، اول باقیمانده عدد 6 تقسیم بر 2 با استفاده از اپراتور % به دست میاد و بعد باقیمانده با 0 توسط == مقایسه میشه و اگر همه چی درست بود خروجی رو نشون میده که میگه بخشپذیره.
اگر خسته نشدین این قسمت رو هم بخونید ولی اگه میبینید دارید گیج میشید، فعلا تا قبل از اینجا رو تمرین کنید و بعد برگردید از اینجا به بعد رو ادامه بدین.
بعضی وقتهای توی کدنویسی شراطی پیش میاد که بجای یه شرط باید چندتا شرط رو چک بکنیم.
مثلا میخوایم بگیم اگه عدد توی متغیر از 17 کوچکتره، بگو کوچکتر است، اگر برابر با 19 شد بگو برابره و در غیر اینصورت بگو بزرگتره. تو این حالت باید از کلمه کلیدی elseif و با تلفظ اِلسایف استفاده بکنیم. در تکمیل مثال بالا:
<?php
$number = 19;
if ($number < 17) echo 'کوچکتر است';
if ($number == 19) echo 'برابر است';
else echo 'بزرگتر است';
?>
خروجی کد بالا شرط دوم یعنی برابریه.
حالا یه مثال دیگه؛ میخوایم کد بالا رو تکمیلتر کنیم و 0 بودن هم چک بشه.
<?php
$number = 19;
if ($number == 0) echo 'صفر است';
elseif ($number < 17) echo 'کوچکتر است';
elseif ($number == 19) echo 'برابر است';
else echo 'بزرگتر است';
?>
نکته خیلی مهم: موقعی که از if و elseif استفاده میکنیم، شرطها به ترتیب و از بالا به پایین بررسی و اجرا میشن؛ پس به محض اینکه هر کدوم از شرطها برقرار شد، بقیه شروط اجرا نمیشن و نادیده گرفته میشن. پس در کد بالا شرط == 19 که اجرا شد دیگه سراغ قسمت else نمیره؛
کلیدواژه else برای مواقعی استفاده میشه که هیچکدوم از شروطی که نوشتیم برقرار نشه. و میتونیم کلا هم ننویسمش یعنی اختیاریه.
بازم مثل همیشه، تمرین، تمرین و تمرین یادتون نره تا خوب یاد بگیرید و ملکه ذهنتون بشه!