العامل الثلاثي (Ternary Operator)
جزء من قسم Fundamentals في رحلة PHP على Coddy — الدرس 30 من 71.
عندما يكون لديك جملة if-else بسيطة تقوم فقط بتعيين قيمة بناءً على شرط ما، توفر PHP طريقة أقصر لكتابتها: العامل الثلاثي (ternary operator).
يستخدم بناء الجملة ? و : لإنشاء شرطي مضغوط في سطر واحد:
<?php
$age = 20;
// استخدام if-else
if ($age >= 18) {
$status = "adult";
} else {
$status = "minor";
}
// نفس الشيء باستخدام العامل الثلاثي (ternary operator)
$status = $age >= 18 ? "adult" : "minor";
echo $status; // adult
?>البنية هي: condition ? value_if_true : value_if_false.
يقوم PHP بتقييم الشرط أولاً. إذا كان صحيحاً، يعيد التعبير القيمة الموجودة بعد ?. وإذا كان خاطئاً، فإنه يعيد القيمة الموجودة بعد :.
<?php
$score = 45;
$result = $score >= 50 ? "Pass" : "Fail";
echo $result; // فشل
$isLoggedIn = true;
$greeting = $isLoggedIn ? "Welcome back!" : "Please log in";
echo $greeting; // مرحباً بعودتك!
?>يعد المعامل الثلاثي (ternary operator) مثالياً لعمليات التعيين البسيطة التي تعتمد على خيارين. أما بالنسبة للمنطق الأكثر تعقيداً الذي يتضمن شروطاً متعددة، فالتزم بجمل if-elseif-else لتحقيق قابلية قراءة أفضل.
التحدي
سهلاقرأ عددين صحيحين من المدخلات: score و passingScore.
استخدم المعامل الشرطي الثلاثي (ternary operator) لتحديد النتيجة بناءً على ما يلي:
- إذا كان
scoreأكبر من أو يساويpassingScore، يجب أن تكون النتيجةPassed - خلاف ذلك، يجب أن تكون النتيجة
Failed
اطبع النتيجة في السطر الأول.
بعد ذلك، اقرأ عدداً صحيحاً quantity من المدخلات. استخدم المعامل الشرطي الثلاثي لتحديد رسالة الشحن:
- إذا كان
quantityأكبر من 10، يجب أن تكون الرسالةFree shipping - خلاف ذلك، يجب أن تكون الرسالة
Standard shipping
اطبع رسالة الشحن في السطر الثاني.
مثال:
إذا كانت المدخلات هي 75، و 60، و 15، يجب أن يكون المخرج:
Passed
Free shippingإذا كانت المدخلات هي 45، و 50، و 5، يجب أن يكون المخرج:
Failed
Standard shippingورقة مرجعية
يوفر العامل الثلاثي (ternary operator) طريقة مختصرة لكتابة تعيينات if-else البسيطة في سطر واحد.
الصيغة هي: condition ? value_if_true : value_if_false
<?php
$age = 20;
// استخدام if-else
if ($age >= 18) {
$status = "adult";
} else {
$status = "minor";
}
// نفس الشيء باستخدام العامل الثلاثي
$status = $age >= 18 ? "adult" : "minor";
echo $status; // adult
?>يقوم PHP بتقييم الشرط أولاً. إذا كان صحيحاً (true)، فإنه يعيد القيمة التي تلي ?. وإذا كان خاطئاً (false)، فإنه يعيد القيمة التي تلي :.
<?php
$score = 45;
$result = $score >= 50 ? "Pass" : "Fail";
echo $result; // Fail
$isLoggedIn = true;
$greeting = $isLoggedIn ? "Welcome back!" : "Please log in";
echo $greeting; // Welcome back!
?>استخدم العامل الثلاثي لتعيينات "إما-أو" البسيطة. بالنسبة للمنطق المعقد الذي يحتوي على شروط متعددة، استخدم عبارات if-elseif-else لتحسين قابلية القراءة.
جرّب بنفسك
<?php
// قراءة المدخلات
$score = intval(fgets(STDIN));
$passingScore = intval(fgets(STDIN));
$quantity = intval(fgets(STDIN));
// TODO: اكتب كودك أدناه
// استخدم العامل الثلاثي (ternary operator) لتحديد ما إذا كانت الدرجة هي نجاح أم رسوب
// استخدم العامل الثلاثي (ternary operator) لتحديد رسالة الشحن
// طباعة النتائج
echo $result . "\n";
echo $shippingMessage;
?>يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس Fundamentals
4معاملات المقارنة والمنطق
معاملات المقارنةالمساواة والتطابقالمعاملات المنطقية - الجزء الأولالمعاملات المنطقية - الجزء الثانيمراجعة - المنطق البسيط2المتغيرات وأنواع البيانات
الأرقامالنصوص وعلامات الاقتباسالقيم المنطقية (Booleans)قواعد التسميةملخص - تهيئة المتغيراتالمتغيرات الفارغةدمج النصوصاستقبال مدخلات المستخدمتحويل أنواع البيانات5المنطق الشرطي
جملة Ifجملة If - Elseالعامل الثلاثي (Ternary Operator)عامل Null Coalescingجملة Switchمراجعة - اتخاذ القرارات3المعاملات الأساسية
المعاملات الحسابيةمعامل باقي القسمةمعامل الأسالتعيين المركبالزيادة والنقصانأسبقية المعاملاتمراجعة - الحسابات البسيطةمعاملات النصوص