2009-09-03 97 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']; }