2013-03-07 2 views
11

Я пытаюсь реализовать блок if else в выражении echo с помощью оператора tenary. Я последовал за ним на if block inside echo statement., но я понятия не имею, что случилось с моим:Тернарный оператор в выражении эха php

echo "<td><input type='checkbox' name='money' id='money'".(($money == 'yes')?'"checked"':" "."value='yes' /></td>"; 
+1

Нельзя использовать его. Это синтаксическая ошибка, вызванная также неопытным использованием форматирования/отступов кода. И тройственный синтаксис часто не помогает читаемости. – mario

+2

Вам не хватает близкого парика (после: ""). Однако я не согласен с @mario. Операторы Tenary во много раз более читабельны, чем создание переменных, чтобы избежать их использования. – landons

+2

Это не слишком локализовано. Я споткнулся об этом в 2015 году ... и голоса по главному ответу говорят и о другой истории. – nils

ответ

27

Вы недостающие закрывающей скобкой ) к вашему выражению:

...(($money == 'yes')?'"checked"':" ")."value='yes' /></td>"; 
            ^add this 
+0

Ты прибил его. Похоже, что это должно было вызвать довольно очевидное сообщение об ошибке ... –

+0

@FrankFarmer: Справедливости ради следует сказать, что ошибка - синтаксическая ошибка, неожиданная ';' ', что немного вводит в заблуждение новобранец: http: // ideone. com/27EBUH – mellamokb

+0

@FrankFarmer нет, если вы работаете в блокноте с файлами в производстве haha ​​ – rinchik

1

У вас есть скобка отсутствует. Попытка:

echo "<td><input type='checkbox' name='money' id='money'".(($money == 'yes')?'"checked"':" ")."value='yes' /></td>"; 
Смежные вопросы