2013-03-07 12 views
11

私はテナント演算子を使ってecho文にif elseブロックを実装しようとしています。私はif block inside echo statement.上でそれに続いてきたが、私は私が間違って何見当がつかない:echo文の三項演算子php

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

あなたは使用しないでください。これは、コードの書式設定/インデントの経験がないために生じる構文エラーです。そして、三項構文は、しばしば読みやすさを助けません。 – mario

+2

あなたはクローズドパレンが残っています(後: "")。しかし、私は@marioに同意しない。テナント演算子は、変数を使用することを避けるために変数を作成するよりも、何倍も読みやすくなっています。 – landons

+2

これはあまりローカライズされていません。私は2015年にこれを乗り越えました...そして主な答えの投票は別の話を同様に伝えます。 – nils

答えて

27

あなたの式に閉じ括弧)が欠落しています

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

あなたはそれを釘付けにしました。これはかなり明白なエラーメッセージを提起しているはずです。 –

+0

@FrankFarmer:公正であるためには、エラーは 'シンタックスエラー、予期しない'; 'です。これはルーキーにとって少し誤解を招くものです。 com/27EBUH – mellamokb

+0

生産中のファイルでメモ帳で作業している場合は、@FrankFarmerは使用できません。 – rinchik

1

あなたが欠落しているブラケットを持っています。試してください:

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