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

استفاده از عملگر سه‌تایی در PHP
یکی از ارکان اصلی برنامه نویسی عملگرها یا Operatorها هستند که در جاهای مختلف و به شکل‌های مختلف در برنامه نویسی استفاده می‌شوند.  مفهوم عملگرها در تمامی زبان‌های برنامه نویسی یکسان است و فقط شکل نوشتاری آن (Syntax) ممکن است متفاوت باشد. مثلا در PHP عملگر concat کاراکتر . (نقطه) است و در اکثر زبان‌های برنامه‌نویسی دیگر کاراکتر + است.
آموزش برنامه نویسی موبایل
آموزش برنامه نویسی اندروید به همراه پشتیبانی رایگان برای رفع خطاهای شما
خودتان را اینجا معرفی کنید

در این مطلب یکی از عملگرهای پرکاربرد به نام 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 هستند کاربرد داشته باشه.

مجید علوی زاده فعالیت حرفه ای خود را از سال ۱۳۷۷ با طراحی گرافیک شروع کرد، طراحی وب را از سال ۱۳۸۰ و برنامه نویسی وب را از سال ۱۳۸۱ آغاز کرد و در همان سال وب سایت مجید آنلاین را تاسیس کرد. هم اکنون تخصص او طراحی و توسعه وب است.

نظرات و سوالات کاربران

هنوز دیدگاه و یا سوالی ارسال نشده است.
هم اکنون شما اولین دیدگاه را ارسال کنید.