($DAO->get_num_rows() == 1) ? echo("is") : echo("are");
Эта доза не, кажется, работает на меня, как предназначено, я получаю ошибку "Неожиданный T_ECHO". Я ожидаю, что это отзовется эхом, или или.
Я попробовал его без скобок вокруг условного выражения. Разве я просто не в состоянии использовать тернарный оператор таким образом?
$DAO->get_num_rows()
возвращает целочисленное значение.
Тернарный оператор не идентичен оператору «если-то». Вы должны были написать его
echo ($DAO->get_num_rows() == 1) ? "is" : "are";
. Он возвращает значение во 2-й или 3-ей позиции. Он НЕ выполняет оператор во 2-й или 3-ей позиции.
Тернарный оператор должен приводить к значению, а не повторять его.
Вот, вероятно, вы захотите это:
echo ($DAO->get_num_rows() == 1) ? "is" : "are";
Если вы хотите использовать два эхо
, вам придется работать с if
/ else
block:
if ($DAO->get_num_rows() == 1) {
echo "is";
} else {
echo "are"
}
Которая будет делать то же самое, что и первая часть кода с использованием тернарного оператора, за исключением того, что она немного длиннее.
Тернарный оператор возвращает одно из двух значений после оценки условий. Его нельзя использовать так, как вы его используете.
Это должно работать:
echo ($DAO->get_num_rows() == 1 ? "is" : "are");
Вы можете использовать
эхо ($ DAO-> get_num_rows () == 1)? "is": "are";