Troubleshooting “Unexpected T_ECHO” in ternary operator statement

后端 未结 4 1938
误落风尘
误落风尘 2020-12-03 10:08
($DAO->get_num_rows() == 1) ? echo(\"is\") : echo(\"are\");

This dose not seem to be working for me as intended, I get an error \"Unexpected T_E

相关标签:
4条回答
  • 2020-12-03 10:52

    The Ternary operator is not identical to an if-then. You should have written it

    echo ($DAO->get_num_rows() == 1) ? "is" : "are";
    

    It returns the value in the 2nd or 3rd position. It does NOT execute the statement in the 2nd or 3rd position.

    0 讨论(0)
  • 2020-12-03 10:52

    U can use

    echo ($DAO->get_num_rows() == 1) ? "is" : "are";

    0 讨论(0)
  • 2020-12-03 10:58

    The ternary operator should result in a value -- and not echo it.


    Here, you probably want this :

    echo ($DAO->get_num_rows() == 1) ? "is" : "are";
    


    If you want to use two echo, you'll have to work with an if/else block :

    if ($DAO->get_num_rows() == 1) {
        echo "is";
    } else {
        echo "are"
    }
    

    Which will do the same thing as the first portion of code using the ternary operator -- except it's a bit longer.

    0 讨论(0)
  • 2020-12-03 11:06

    The ternary operator returns one of two values after evaluating the conditions. It is not supposed to be used the way you are using it.

    This should work:

    echo ($DAO->get_num_rows() == 1 ? "is" : "are");
    
    0 讨论(0)
提交回复
热议问题