PHP三元运算符无法正常工作

时间:2009-09-03 04:39:50

标签: php ternary

下面的代码采用一个数组值,如果它的键存在它应该回显它的值,三元if / else部分工作但值没有显示,有人可以找出它为什么不会吗?

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

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

另外我把它回显为假,如果一个键不存在我不需要输出,我应该删除单词false还是还有别的东西让代码只显示1个值?

4 个答案:

答案 0 :(得分:6)

我认为你在错误的地方有一个括号:

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

另外,请检查'captcha'的拼写。

答案 1 :(得分:3)

你有一个错字。这样:

? $signup_errors['catcha'] :

应该是这样的:

? $signup_errors['captcha'] :

catcha - >验证码

答案 2 :(得分:2)

我认为你的意思是:

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

或者,如果在密钥不存在时不需要输出,请使用“if”语句,而不是三元运算符:

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

答案 3 :(得分:1)

你拼错'captcha'为'catcha'。