آموزش ternary operator در php و نحوه استفاده از آن

تاریخ: 18 شهریور 1399

استفاده از if-else یک بخش ضروری برنامه نویسی برای پیاده کردن شرط ها می باشد.

Ternary operator در واقع یک حالت کوتاه شده شرطی در اختیار ما قرار می دهد تا راحت تر از شرط ها استفاده کنیم. در واقع این عملگر یک جایگزین مناسب برای دستورات ابتدایی if-else می باشد.

Ternary operator یا عملگر سه گانه به این دلیل نام گذاری شده است که این دستور سه بخش اصلی (عملوند) دارد:


(Condition) ? (Statement1) : (Statement2);

 

بخش اول (عملوند اول) شرط اصلی دستور است.

بخش دوم (عملوند دوم) دستوری است که با نتیجه true شرط اصلی اجرا می شود.

بخش سوم (عملوند سوم) دستوری که با نتیجه false شرط اصلی اجرا می شود.

مثال:

(1 == 2) ? print 1 : print 2;
//output: 2

 

چه زمانی از ternary operator استفاده می کنیم؟

استفاده از این عملگر معمولا زمانی رخ می دهد که بخواهیم یک متغیر را تحت if-else تعریف کنیم:

 
$x = 2;
if($x == 2)
    $z = 1;
else
    $z = 2;

 

این دستور با استفاده از ternary operator به شکل ساده زیر خواهد بود:

 
$x = 2;
$z = ($x == 2) ? 1 : 2 ;

 

مزیت استفاده از ternary operator

استفاده از ternary operator در تمیز کردن کدها بسیار مفید است و یکی از مواردی است که در ری فکتور کدهای php به آن توجه زیادی می شود.

استفاده از آن باعث می شود:

  1. کدهای ما کوتاه تر شود.
  2. کدهای ما خواناتر شود.
  3. کدهای ما ساده تر شود.

 

حالت کوتاه شده ی ternary operator

عملگر ternary operator یک حالت کوتاه شده نیز دارد بدین صورت که بخش وسط حذف می شود و نهایتا یک شرط داریم و یک دستور، و طبعا آن دستور زمانی اجرا می شود که شرط ما غلط باشد:

 
$x = 2;
$z = ($x !== 2) ?: 2;
echo $z; //output: 1

 

اگر شرط درست باشد، عملگر مقدار 1 بر می گرداند. پس در دستور بالا مقدار متغیر z برابر 1 خواهد بود.

اگر در هنگام تعریف متغیر z و شرط ابتدایی آن، بخواهیم وجود یک متغیر را چک کنیم، لازم است از تابع isset استفاده کنیم:

 
$x = 2;
$z = ! isset($x) ?: 2;
echo $z; //output: 2

زمانی که شرط ما isset است، می توانستیم از ?? استفاده کنیم.

 
$x = 2;
$z = $x ?? 2;
echo $z; //output: 2

بدین صورت رفتار می کند که اگر بخش اول وجود داشت، بخش دوم برگردانده می شود. در غیر اینصورت Null برگردانده می شود.

 

دیدگاهتان را بنویسید

طراحی افزونه وردپرس