2009-09-03 98 views
1

下面的代碼需要一個數組值,如果它的鍵存在它應該回顯它的值,三元if/else部分工作,但價值沒有顯示出來,任何人都可以找出它爲什麼贏得' T'PHP三元運算符不工作

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

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

而且在那裏我有它呼應了假的,我不需要輸出,如果鍵不存在,我只是刪除字虛假或者有什麼別的使代碼只顯示1倍的值?

+2

如果您只想在出現錯誤時輸出,爲什麼不直接使用if語句? – 2009-09-03 04:45:53

+5

PHP三元運算符正在工作。你只是沒有正確使用它。 – recursive 2009-09-03 04:47:18

回答

6

我認爲你有錯了地方一個括號:

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

另外,檢查你的'captcha'拼寫。

+0

括號是確定的。其實他們在兩種情況下都是無用的。 – 2009-09-03 07:55:33

3

你有一個錯字。這:

? $signup_errors['catcha'] : 

應該是這樣的:

? $signup_errors['captcha'] : 

catcha - >驗證碼

+0

他有兩個錯別字。仔細觀察。 – 2009-09-03 04:56:25

+0

克里斯,這是我能發現的唯一一個。我實際上在CLI中測試了代碼。 – 2009-09-03 05:09:18

1

你有拼寫錯誤 '驗證碼' 爲 'catcha'。

2

我想你的意思是:

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

或者,如果你不想要輸出,當鍵不存在,請使用「如果」的語句,不三元運算符:

if (array_key_exists('captcha', $signup_errors)) { echo $signup_errors['captcha']; }