2012-12-13 2 views
2

가능한 중복 :
Double equals and tripple equals in php신참 - PHP - 테스트 '빈'문자열

나는 비어 있지 않은 '빈'변수의 여러 유형에 대해 테스트하려합니다. 문자열 " ''"동일한 경우는 많이 나오면 한 상황은

(즉, 두 개의 작은 따옴표 문자)를 다른 수행 XYZ을 ABC

내가 다른의 변수를 가질

유형은 0, '0'(즉, 문자 '0', 값 48과 반대로 ASCII 48) 및 ''(빈 문자열) 일 수 있습니다. 이 모든 것은 두 개의 작은 따옴표가 들어있는 문자열 인 " ''"와 동일합니다. 분명히, 그들은 동일하지 않습니다! 하나는 두 문자 - ASCII 39, ASCII 39 - 다른 문자열은 0, ASCII 48 등이 될 수 있습니다.

나는 is_numeric() 등을 사용하여 해결 방법을 찾았지만 나는 더 나은 방법이 있어야한다고 생각하지만 도움을 줄 수는 없다. 이런 종류의 일을 처리하는 데 선호되는 방법은 무엇입니까?

매우 순진한 질문 인 것처럼 보이는 것에 대해 양해 해 주셔서 감사합니다.

답변

1

당신이 동일한 검사를

if ($string === '') 

을 할 경우, 당신은 당신이 후에있는 결과를 얻을 것이다.

연산자 유형과 그 효과에 대한 자세한 내용은 this previous SO answer을 참조하십시오.

3

동일한 연산자 (===)를 사용하여 유형 및 값을 확인할 수 있습니다. 자세한 내용은 http://php.net/manual/en/language.operators.comparison.php을 참조하십시오.

+0

대단합니다! 너무 간단합니다. 매우 감사합니다. 나는 이미 empty()를 시도했지만, 위에서 언급 한 것처럼, 모든 경우에 true를 반환하지만, === 작동하는 것처럼 보입니다. –

5

자세한 내용은 if(!empty($string))http://php.net/manual/en/function.empty.php을 사용할 수도 있습니다.

+0

"if (! statement)"는 기본적으로 "if not (statement)"라고 말합니다. – Charles

+0

empty()는 주어진 변수가 ""와 같은지 검사하는 것과 정확히 같지 않습니다. 주어진 배열이 비어 있거나 문자열에 내용이 없거나 주어진 변수가 숫자 0을 포함하면 empty()도 TRUE를 반환합니다. –