Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

العامل الثلاثي (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 لتحقيق قابلية قراءة أفضل.

challenge icon

التحدي

سهل

اقرأ عددين صحيحين من المدخلات: 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;
?>
quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس Fundamentals