php - मेरी तीखी अभिव्यक्ति काम क्यों नहीं कर रही है?

original title: "php - Why is my ternary expression not working?"


Translate

I am trying to set a flag to show or hide a page element, but it always displays even when the expression is false.

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

What's up?



मैं पृष्ठ तत्व को दिखाने या छिपाने के लिए एक ध्वज स्थापित करने का प्रयास कर रहा हूं, लेकिन यह हमेशा अभिव्यक्ति के गलत होने पर भी प्रदर्शित होता है। $ canMerge = ($ condition1 && $ condition2)? 'सही गलत'; ... <?...

यह अनुवाद के बाद का सारांश है, अगर आपको पूरा अनुवाद देखने की आवश्यकता है, तो कृपया 'अनुवाद' आइकन पर क्लिक करें


सभी उत्तर
  • Translate

    This is broken because 'false' as a string will evaluate to true as a boolean.

    However, this is an unneeded ternary expression, because the resulting values are simple true and false. This would be equivalent:

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

  • Translate

    The value of 'false' is true. You need to remove the quotes:

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

  • Translate

    Seems to me a reasonable question especially because of the discrepancy in the way PHP works.

    For instance, the following code will output 'its false'

    $a = '0';
    
    if($a)
    {
        echo 'its true';
    }
    else
    {
        echo 'its false';
    }
    

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

    then

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