2009-09-03 11 views
1

아래 코드는 배열 값을 취합니다. 키가 존재하면 그 값을 에코해야합니다. 삼진 if/else 부분은 작동하지만 값이 표시되지 않습니다. 티?PHP 삼항 연산자가 작동하지 않습니다

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

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

또한 어디있다가 키가 존재하지 않는 경우, 난 그냥 거짓 단어를 삭제해야합니다, 출력을 필요로하지 않는 거짓 밖으로 에코 또는 단 1 개 값을 표시하는 코드를 만드는 뭔가가있다?

+2

오류가있을 때만 출력하고 싶다면 if 문을 사용하지 않는 이유는 무엇입니까? –

+5

PHP 삼항 연산자가 작동 중입니다. 당신은 그것을 올바르게 사용하지 않고 있습니다. – recursive

답변

6

I을 당신이 잘못된 장소에 괄호를 가지고 생각 :

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

을 또한, 'captcha'의 맞춤법을 검사.

+0

괄호는 정상입니다. 실제로 그들은 두 경우 모두 거의 쓸모가 없습니다. –

3

오타가 있습니다. 이 :

? $signup_errors['catcha'] : 

이 같아야합니다

? $signup_errors['captcha'] : 

catcha -> 보안 문자

+0

그는 두 가지 오타가 있습니다. 자세히 살펴. –

+0

크리스, 그게 내가 발견 할 수있는 유일한 사람이야. 그리고 CLI에서 코드를 실제로 테스트했습니다. –

1

당신은 'catcha'로 '보안 문자를'맞춤법이 틀린했다.

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

을 아니면 키가 존재하지 않는 어떤 출력을 원하지 않을 경우, '경우'문이 아닌 삼항 연산자를 사용 :

2

나는 당신이 의미 생각

if (array_key_exists('captcha', $signup_errors)) { echo $signup_errors['captcha']; } 
관련 문제