عملگر شرطی در PHP ابزاری است که به شما این امکان را میدهد تا تصمیمگیریهای شرطی را بهصورت مختصر و در یک خط کد بنویسید. این عملگر معمولاً به نام عملگر سهگانه «ternary operator» شناخته میشود و از سه قسمت اصلی تشکیل شده است: یک شرط برای ارزیابی، یک نتیجه برای زمانی که شرط درست است و یک نتیجه برای زمانی که شرط غلط است.
مقدمه
استفاده از عملگر شرطی در موقعیتهایی که نیاز به انجام عملیات شرطی کوتاه و ساده دارید، بسیار مفید است. این عملگر میتواند به کاهش تعداد خطوط کد و افزایش خوانایی کمک کند. بهعنوان مثال، وقتی که بخواهید یک مقدار خاص را بر اساس یک شرط تغییر دهید یا انتخاب کنید، عملگر شرطی به شما این امکان را میدهد که همه این کارها را در یک عبارت کوتاه انجام دهید. بهطور کلی، استفاده صحیح از این عملگر میتواند به بهبود عملکرد و زیبایی کد کمک کند. در این آموزش، از سری مقاله های مجله پی استور، یاد میگیرید که چگونه از عملگر شرطی در PHP استفاده کنید تا کد را کوتاهتر و خواناتر کنید.
عملگر شرطی در PHP
عملگر شرطی در PHP یک روش کوتاه برای نوشتن دستور if else است. به جای نوشتن کد به این شکل:
<?php if (condition) { $result = value1; } else { $result = value2; }
میتوانید از این استفاده کنید:
$result = condition ? value1 : value2;
نحوه کار:
- ابتدا PHP شرط را ارزیابی میکند. اگر مقدار آن true باشد، مقدار value1 را برمیگرداند؛ در غیر این صورت، مقدار value2 را برمیگرداند.
- سپس PHP نتیجه عبارت سمت راست را به متغیر result$ اختصاص میدهد.
همانطور که میبینید، استفاده از عملگر شرطی در PHP کد را خلاصهتر و خواناتر میکند. توجه داشته باشید که نام عملگر شرطی در PHP از اینجا میآید که این عملگر به سه عملوند نیاز دارد: یک عبارت شرطی، مقدار اول، مقدار دوم.
مثال عملگر شرطی در PHP
فرض کنید که میخواهید در صورتی که کاربر وارد نشده باشد، لینک ورود و اگر وارد شده باشد، لینک خروج را نمایش دهید. برای انجام این کار میتوانید از دستور if else به شکل زیر استفاده کنید:
<?php $is_user_logged_in = false; if ($is_user_logged_in) { $title = 'Logout'; } else { $title = 'Login'; }
در این مثال، مقدار title$ برابر با Login خواهد بود زیرا مقدار is_user_logged_in$ برابر با false است.
این کد نسبتا طولانی است، اما میتوانید آن را با استفاده از عملگر شرطی در PHP کوتاهتر کنید، به این شکل:
<?php $is_user_logged_in = false; $title = $is_user_logged_in ? 'Logout' : 'Login';
اکنون کد بسیار کوتاهتر شده است. اگر خط کد طولانی باشد، میتوانید آن را به شکل زیر بشکنید:
<?php $is_user_logged_in = false; $title = $is_user_logged_in ? 'Logout' : 'Login';
عملگر شرطی کوتاه شده در php
از نسخه PHP 5.3 به بعد، میتوانید از عملگر شرطی در PHP کوتاهشده به شکل زیر استفاده کنید:
$result = $initial ?: $default;
در این ساختار، PHP مقدار initial$ را در یک زمینهی بولی ارزیابی میکند. اگر مقدار initial$ برابر با true باشد، مقدار آن به متغیر result$ اختصاص داده میشود. در غیر این صورت، مقدار default$ به result$ اختصاص مییابد.
مثال زیر از عملگر شرطی در PHP کوتاهشده استفاده میکند تا مقدار path$ را به url$ اختصاص دهد، اگر path$ خالی نباشد. در صورتی که path$ خالی باشد، عملگر شرطی در PHP مقدار / را به url$ اختصاص میدهد:
<?php $path = '/about'; $url = $path ?: '/'; echo $url; // /about
خروجی:
/about
زنجیره ای کردن عملگر شرطی در PHP
از نظر فنی، میتوانید با استفاده از پرانتزها عملگرهای سهتایی را به هم متصل کنید.
فرض کنید که میخواهید پیامهای مختلفی را بر اساس واجد شرایط بودن کاربران و میزان اعتبار آنها نمایش دهید. مثال زیر دو عملگر شرطی در PHP را به هم متصل میکند:
<?php $eligible = true; $has_credit = false; $message = $eligible ? ($has_credit ? 'Can use the credit' : 'Not enough credit') : 'Not eligible to buy'; echo $message;
در بیشتر موارد، زنجیرهای کردن چندین عملگر شرطی در PHP خوانایی کد را کاهش میدهد. در چنین شرایطی، بهتر است از دستور if else یا if elseif استفاده کنید.
نتیجه گیری
عملگر شرطی در PHP، که بهعنوان یک راه کوتاهتر برای نوشتن دستورات شرطی پیچیده شناخته میشود، به توسعهدهندگان این امکان را میدهد که کدهای خود را سادهتر و خواناتر بنویسند. این عملگر به صورت یک عبارت واحد عمل میکند که با استفاده از علامت سوال ? و دو نقطه: ، شرایط مختلف را بررسی و نتیجه مناسب را برمیگرداند. استفاده از عملگر شرطی به ویژه در موقعیتهایی که نیاز به ارزیابی سریع یک شرط و انتخاب یکی از دو مقدار مختلف داریم، بسیار مفید است و میتواند کد را کوتاهتر و مؤثرتر کند.