2009-09-03 10 views
1

以下のコードは配列の値をとりますが、キーが存在すればその値をエコーし​​て、3値のif/else部分は機能しますが、値が表示されない場合、 t?私はそれが偽をエコー持っまたPHPの3進演算子は動作しません

$signup_errors['captcha'] = 'error-class'; 

echo(array_key_exists('captcha', $signup_errors)) ? $signup_errors['catcha'] : 'false'; 

キーが存在しない場合、私はちょうど偽の単語を削除するか、コードが唯一の1つの値を表示させるために何か他のものがあるはずです、私は、出力を必要としませんか?

+2

エラーが発生したときだけ出力したい場合は、if文を使用するだけではどうですか? –

+5

PHPの3進演算子が動作しています。あなたはそれを正しく使用していないだけです。 – recursive

答えて

6

を私はあなたは間違った場所にかっこを持っていると思う:

また
echo(array_key_exists('captcha', $signup_errors) ? $signup_errors['captcha'] : 'false'); 

'captcha'のスペルを確認してください。

+0

かっこはOKです。実際には、どちらの場合でもほとんど役に立たない。 –

3

あなたはタイプミスがあります。この: - >キャプチャ

+0

彼には2つのタイプミスがあります。もっと見る。 –

+0

クリス、それは私が見つけることができる唯一のものです。実際にCLIでコードをテストしました。 –

1

あなたは 'catcha' として 'キャプチャ' をスペルミスしている

? $signup_errors['captcha'] : 

catcha:

? $signup_errors['catcha'] : 

がこのであるべき。

2

私はあなたが意味を考える:

echo(array_key_exists('captcha', $signup_errors) ? $signup_errors['captcha'] : 'false'); 

またはキーが存在しないときは、何も出力したくない場合は、「もし」ステートメントではなく、三項演算子を使用します。

if (array_key_exists('captcha', $signup_errors)) { echo $signup_errors['captcha']; } 
関連する問題