:? (Elvis Operator)
در نسخه 5.3 PHP عملگر Elvis برای کوتاه کردن عملگر سه گانه(ternary operator) معرفی شد.
برای مثال قطعه کد زیر را که با if و else نوشته شده است را مشاهده کنید.
// using if/else if ($user != null) { return $user; }else { return $guest; }
کد زیر معادل قطعه کد بالا با استفاده از عملگر سه تایی است.
// using the ternary operator return $user ? $user : $guest;
اما کار همین جا تموم نمیشه و عملگر Elvis یا Ternary Shorthand(نام دیگر) برای کوتاه تر شدن همین تکه کد کوچک معرفی شده است.
// PHP 5.3+
// using the Elvis/Ternary Shorthand operator
return $user ?: $guest;
در واقع در این قسمت که از عملگر Elvis استفاده شده نیاز نیست قسمت دوم عملگر سه گانه را بنویسیم. بنابراین اگر شرط درست باشد دیتا user$ و اگر نه دیتای guest$ برگشت داده(return) میشود.