Ответ 1
Тернарный оператор не идентичен if-then. Вы должны были написать это
echo ($DAO->get_num_rows() == 1) ? "is" : "are";
Он возвращает значение во 2-й или 3-й позиции. Он НЕ выполняет оператор во 2-й или 3-й позиции.
($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)? "is": "are";