Подтвердить что ты не робот

Устранение неполадок "Неожиданный T_ECHO" в операторной инструкции оператора

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

Эта доза, похоже, не работает для меня, как предполагалось, я получаю сообщение об ошибке "Неожиданное T_ECHO". Я ожидаю, что он будет эхом либо "есть", либо "есть".

Я пробовал его без скобок вокруг условного. Я просто не могу использовать тернарный оператор таким образом?

$DAO->get_num_rows() возвращает целочисленное значение.

4b9b3361

Ответ 1

Тернарный оператор не идентичен if-then. Вы должны были написать это

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

Он возвращает значение во 2-й или 3-й позиции. Он НЕ выполняет оператор во 2-й или 3-й позиции.

Ответ 2

Тернарный оператор должен привести к значению - и не повторять его.


Здесь вы, вероятно, захотите:

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


Если вы хотите использовать два echo, вам придется работать с блоком if/else:

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

Что будет делать то же самое, что и первая часть кода, используя тернарный оператор, за исключением того, что он немного длиннее.

Ответ 3

Террарный оператор возвращает одно из двух значений после оценки условий. Он не должен использоваться так, как вы его используете.

Это должно работать:

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

Ответ 4

U может использовать

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