error - php operator




لماذا لا يعمل تعبيري الثلاثي؟ (3)

أحاول وضع علامة لإظهار عنصر صفحة أو إخفائه، ولكنه يعرض دائما حتى عندما يكون التعبير خاطئة.

$canMerge = ($condition1 && $condition2) ? 'true' : 'false';
...
<?php if ($canMerge) { ?>Stuff<?php } ?>

ماذا تفعل؟


قيمة "كاذبة" صحيحة. يجب إزالة علامات الاقتباس:

$canMerge = ($condition1 && $condition2) ? true : false;

هذا هو كسر لأن 'كاذبة' كسلسلة تقييم حقيقي كما منطقية.

ومع ذلك، هذا هو التعبير الثلاثي غير ضروري، لأن القيم الناتجة هي بسيطة صحيحة وكاذبة. وسيكون ذلك معادلا:

$canMerge = ($condition1 && $condition2);

$canMerge = ($condition1 && $condition2);

ثم

if ($canMerge){
    echo "Stuff";
}




ternary-operator