Поиск и устранение неисправностей “Неожиданного T_ECHO” в операторе тернарного оператора

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

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

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

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

23
задан thecoshman 21 May 2013 в 07:53
поделиться

4 ответа

Тернарный оператор не идентичен оператору «если-то». Вы должны были написать его

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

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

52
ответ дан 29 November 2019 в 01:12
поделиться

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


Вот, вероятно, вы захотите это:

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


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

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

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

6
ответ дан 29 November 2019 в 01:12
поделиться

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

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

echo ($DAO->get_num_rows() == 1 ? "is" : "are");
2
ответ дан 29 November 2019 в 01:12
поделиться

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

эхо ($ DAO-> get_num_rows () == 1)? "is": "are";

0
ответ дан 29 November 2019 в 01:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: