در قسمت قبلی با عملگرها در php آشنا شدیم. در این بخش از سری آموزش php قصد داریم نحوه نوشتن کد تصمیم گیری با دستور شرطی if…Else در PHP را آموزش بدیم.
دستورات شرطی PHP
همانند دیگر زبان های برنامه نویسی, PHP نیز به شما اجازه نوشتن کد به منظور انجام عملیات مختلق بر اساس نتیجه یک منطق یا مقایسه شرط را در زمان اجرا می دهد.
چندین دستور در php برای تصمیم گیری وجود دارد که می توانید استفاده کنید :
- دستور if
- دستور if…else
- دستور if…elseif…else
- دستور switch…case
هر یک از این دستورات را در بخش های بعدی بررسی می کنیم.
دستور if در php
دستور if برای اجرای کد داخل بلاک فقط در حالتی که شرط true
باشد, استفاده می شود.
این ساده ترین دستور شرطی در PHP است که به اینصورت می توانید بنویسید :
1 2 3 |
if(condition){ // Code to be executed } |
در مثال زیر اگر جمعه (friday) باشد خروجی “Have a nice weekend” را خواهد داشت.
1 2 3 4 5 6 |
<?php $d = date("D"); if($d == "Fri"){ echo "Have a nice weekend!"; } ?> |
دستورات if…Else در PHP
می توانید روند تصمیم گیری را با افزودن یک دستور else
به دستور if
افزایش بدید.
دستور if…else
به شما اجازه اجرای یک بلاک کد برای شرط true
و یک بلاک نیز برای شرط false
را می دهد که بصورت زیر نوشته می شود :
1 2 3 4 5 |
if(condition){ // Code to be executed if condition is true } else{ // Code to be executed if condition is false } |
در مثال زیر اگر جمعه (friday) باشد خروجی “Have a nice weekend” را خواهد داشت و در غیر اینصورت “Have a nice day!” نمایش می دهد.
1 2 3 4 5 6 7 8 |
<?php $d = date("D"); if($d == "Fri"){ echo "Have a nice weekend!"; } else{ echo "Have a nice day!"; } ?> |
دستور if…elseif…else
این دستور برای ترکیب چندین دستور if…else
استفاده می شود.
1 2 3 4 5 6 7 |
if(condition1){ // Code to be executed if condition1 is true } elseif(condition2){ // Code to be executed if the condition1 is false and condition2 is true } else{ // Code to be executed if both condition1 and condition2 are false } |
در مثال زیر اگر جمعه (friday) باشد خروجی “Have a nice weekend” را خواهد داشت و در غیر اینصورت اگر یکشنبه (Sunday) باشد “Have a nice Sunday!” و در غیر اینصورت “Have a nice day!” نمایش می دهد.
1 2 3 4 5 6 7 8 9 10 |
<?php $d = date("D"); if($d == "Fri"){ echo "Have a nice weekend!"; } elseif($d == "Sun"){ echo "Have a nice Sunday!"; } else{ echo "Have a nice day!"; } ?> |
در مورد دستور switch-case در php در بخش بعدی یاد می گیرید.
عملگر سه تایی (Ternary)
عملگر سه تایی یک روش برای مختصرنویسی دستورات if…else است.
این اپراتور با علامت سوال (?
) شروع و سه اپندر دریافت می کند :
یک شرط برای چک کردن, یک نتیجه برای true
و یک نتیجه نیز برای false
برای درک نحوه کار این عملگر, مثال زیر را در نظر بگیرید:
1 2 3 4 5 6 7 |
<?php if($age < 18){ echo 'Child'; // Display Child if age is less than 18 } else{ echo 'Adult'; // Display Adult if age is greater than or equal to 18 } ?> |
حالا همان کد را به روش فشرده و خیلی جمع و جور و ساده تر با اپراتور سه تایی می نویسیم :
1 |
<?php echo ($age < 18) ? 'Child' : 'Adult'; ?> |
عملگر سه تایی در مثال بالا مقدار سمت چپ کولون (:
) که Child است را در صورتی که شرط true
باشد ($age
کمتر از ۱۸ باشد) چاپ می کند و اگر شرط false
بود مقدار Adult را چاپ می کند.
نکته : کد نوشته شده با اپراتور Ternery بعضی مواقع سخت خوانده می شود اما یک روش عالی برای دستورات شرطی if-else کوتاه است.
عملگر Null coalescing در ۷ php
در ۷ php یک قابلیت جدید به نام Null coalescing operator (??
) اضافه شده که برای جایگزینی عملیات سه گانه در ارتباط با عملکرد ()isset
استفاده می شود.
برای درک بهتر این عملگر مثال زیر را در نظر بگیرید که اگر $_GET[‘name’]
وجود نداشد یا NULL
بود مقدار anonymous را برگشت می دهد در غیر اینصورت خود مقدار آن را برگشت می دهد.
1 2 3 |
<?php $name = isset($_GET['name']) ? $_GET['name'] : 'anonymous'; ?> |
کد php بالا را با عملگر Null coalescing بصورت زیر بازنویسی کردیم :
1 2 3 |
<?php $name = $_GET['name'] ?? 'anonymous'; ?> |
همانطور که می بینید سینتکس جدید بسیار فشرده تر و آسان تر است.
امیدوارم در این بخش آموزش PHP, از دستور شرطی if…Else در php نهایت استفاده را برده باشید.
در بخش بعدی با دستور شرطی Switch…Case در PHP آشنا می شویم.
هر سوالی داشتید ، از قسمت نظرات ارسال کنید . سریعا ، پاسخگوی سوالات شما هستیم .
موفق باشید
ضمن تشکر از زحمات و تدریس عالیتون، لطف میکنید عملگر Null coalescing را بیشتر توضیح بدید متوجه نشدم.ممنون
سلام. خوشحالیم که مفید واقع شده.
این عملگر همان جایگزین شرط های if و else و بررسی مقادیر متغییر هست که باعث میشه به جای چند خط در یک خط کد رو خلاصه کنید همین
سلام من یه دیتابیس دارم که یک تیبل داره به نام user که تمامی کسانی که توی سایت ثبت نام میکنن اطلاعتشون داخل این تیبل ذخیره میشه هر کاربر دارای یک I’d هست من میخوام بیام وضعیت آنلاین بودن یکی از این کاربرهارو چک کنم مثلا میخوام اگه کاربر با I’d=1 آنلاین بود یه شرط اجرا بشه کدشو دارین بهم بدین
سلام. آنلاین بودن با این مواردی که در دیتابیس ذخیره کردید انجام نمیشه و باید سشن کاربر با زمان رو ذخیره کنید و ajax بزنید تا ببینید آنلاین هست یا نه که البته منابع سرور باید بالا باشه تا سرعت سایت پایین نیاد
https://stackoverflow.com/questions/8026263/how-to-see-if-a-user-is-online-in-a-website-with-php-and-mysql-driven-databases
موفق باشید.