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