استفاده از عملگر سهتایی در PHP

افزونه فرم ساز آسان
فرم ساز آسان اولین فرم ساز کاملا فارسی وردپرس
فرم ساز آسان اولین فرم ساز کاملا فارسی وردپرس
خرید ورق گالوانیزه رنگی
خرید انواع ورق گالوانیزه رنگی با بهترین قیمت
خرید انواع ورق گالوانیزه رنگی با بهترین قیمت
هاست سی پنل
قیمت هاست cPanel | هاست سی پنل ارزان
قیمت هاست cPanel | هاست سی پنل ارزان
هاست ایمیل
سرور ایمیل | هاست ایمیل اختصاصی | میل سرور smartermail
خودتان را اینجا معرفی کنید
سرور ایمیل | هاست ایمیل اختصاصی | میل سرور smartermail
در این مطلب یکی از عملگرهای پرکاربرد به نام Ternary Operator قرار هستش که معرفی بشه که البته همانطوری که گفته شد تقریبا در تمامی زبانهای برنامهنویسی وجود داره اما در این مطلب برای زبان برنامهنویسی PHP معرفی خواهد شد.
عملگر سهتایی چیست ؟
عملگر سهتایی یا Ternary Operator یک عملگر شرطی است، یعنی اینکه برای بررسی True یا False بودن یک عبارت شرطی استفاده می شود.در زمان برنامه نویسی خیلی وقتها ما نیاز داریم بین دو جریان مختلف برنامه یک کار را انجام دهیم. منظورم اینه که مثلا قرار است اگر کاربر لاگین بود متن شماره یک را echo کنیم و اگر کاربر لاگین نبود متن شماره دو را echo کنیم. در این بخش از برنامه ما در هر صورت یک متن echo خواهد شد، فقط بر اساس شرطی که داریم متن تغییر خواهد کرد.
برنامه ای که برای این بخش می نویسیم در حالت عادی بدین شکل است :
<?php
if ($user_is_login === true) {
echo "Hello Admin";
}else{
echo "Please login";
}
?>
در کد بالا اگر مقدار متغیر $user_is_login
برابر و همسان با true باشد مقدار Hello Admin و اگر چیزی غیر از true باشد مقدار Please Login بر روی صفحه نمایش داده خواهد شد.حالا با استفاده از Ternary Operator میتوانیم کد بالا را بصورت زیر خلاصه کنیم:
<?php
echo ($user_is_login === true) ? "Hello Admin" : "Please Login";
?>
در این کد علامت ? نشان دهنده حالت true شرط و : نشان دهنده حالت falseشرط است.
کاری که ما در کد قبلی در ۵ خط انجام دادیم، با استفاده از عملگر سهتایی در یک خط انجام شد.
از نسخه php 5.3 به بالا میتوان عملگر را بصورت ?: جهت استفاده از مقدار متغیر به عنوان پیش فرض نیز نوشت.
کد زیر را ببینید:
<?php
$color = "red";
echo '<a href="http://www.majidonline.com" style="color: '. ( $color ?: 'blue' ) .'">MajidOnline</a>';
?>
در کد بالا اگر مقدار $color
از قبل تعریف شده باشد مقداری که داخل $color
وجود دارد چاپ خواهد شد و اگر متغیر خالی باشد مقدار blue چاپ خواهد شد.از Ternary Operator معمولا برای همین یک حالت (یعنی فقط بررسی true و false بودن شرط) استفاده میشه، گرچه ما میتونیم یک کد کثیف بنویسیم و اونو گسترش بدیم.
کدهای زیر رو ببینید، هر دو یک کار را انجام می دهند. اما کدارم تمیزتر و خوانا تر است ؟
<?php
if ($age > 0 && $age <= 3){
echo "نوزاد";
}else if ($age > 3 && $age <= 7){
echo "خردسال";
}else if ($age > 7 && $age <= 12){
echo "کودک";
}else if ($age > 12 && $age <= 15){
echo "نوجوان";
}else if ($age > 15) {
echo "بزرگسال";
}else{
echo "سن وارد شده مجاز نمیباشد";
}
echo ($age > 0 && $age <= 3 ? "نوزاد" : ($age > 3 && $age <= 7 ? "خردسال" : ($age > 7 && $age <= 12 ? "کودک" : ($age > 12 && $age <= 15 ? "نوجوان" : ()$age > 15 ? "بزرگسال" : "سن وارد شده مجاز نمیباشد"))));
?>
نتیجه گیری
استفاده از Ternary Operator کدنویسی ما را کوتاه و تمیز میکند البته به شرطی که به شکل درست از آن استفاده شود.این مطلب خیلی مطلب ابتدایی هستش که خیلی از برنامه نویسان PHP مطلع هستند و در کارهاشون استفاده میکنند، اما این موضوع میتونه برای کسانی که تازه php رو یاد گرفتن و یا اینکه در حال یادگیری PHP هستند کاربرد داشته باشه.
نظرات و سوالات کاربران