2010-03-16 3 views
1

전달 된 값을 검사하고 false 또는 true를 반환하는 함수가 있는데, false이면 배열에 무언가를 추가하려고합니다. 필자가 작성한 코드는 다음과 같습니다.PHP에서는 함수 호출에서 부울 값을 검사 할 수 있습니까?

if(!check_input($_POST['username'])){ 
    $errors[] = "Username"; 
} 

지금은 양식에 입력 된 내용과 관계없이 어쨌든 내 배열에 추가됩니다. check_input()의 반환이 거짓인지 확인하는 올바른 방법을 작성한 방법입니까? 나는 에코 리턴 값을 변경하여 함수의 로직을 검사했으며, 올바른 값을 리턴하고 있습니다. 잘못 체크했는지 확실하지 않습니다.

나는 이전에 $X=check_input 등으로 작성하려고 시도했지만 그 다음에 if(check_value == false)으로 작성했지만 원하는 결과를 얻지 못했습니다. 흠, 빠른 포인터주세요!

편집 :

내가 문제를 발견 생각 내 기능보고 후 좋아, 나는 if 문, 그리고 있다는 내 경우 else 문,의 값이 비어 있지 검사 경우 처음 두 번째는 최대 길이를 초과하지 않는지 검사하고 true/false를 반환합니다. 내가 그 값을 통과했다면 최대 길이 만 체크하도록 설정했거나 아무것도 설정하지 않았습니다. 그러나, 균형에 나는 주요 if 진술에 대한 진정한 반환을 가지고 있지 않습니다. 그래서 내 논리는 현재 값이 아무것도 아닌 것보다 크면 최대 길이와 비교하여 확인한 다음 true를 반환합니다. 최대 길이를 확인하지 않고 값이 있으면 아무 것도 반환하지 않습니다. 흠. 그게 내 문제의 원인이라고 생각하니?

편집 2 :

모두 감사합니다, 그리고 제안 마빈에게 나는 기능을 다시 확인합니다. 나는 그것을 작동 시켰습니다. false가 반환되거나 false가 반환되면 else 문과 hey presto에서 true를 반환합니다.

+0

statemnet이 맞습니다. 그런 함수를 사용할 수 있습니다. check_input 함수에 뭔가 잘못 되었으면 좋겠다. dobule이 그것을 확인하려면 – marvin

+0

, check_input()은 부울을 반환해야한다. – dnagirl

답변

1

당신은 === 연산자를 사용 false와 함수의 반환 값을 비교해야합니다

if(check_input($_POST['username']) === false) { 

을하지만이 기능은 또한 작업을해야하고의 boolean 값 길을 반환해야하는 경우.

문제가 발생하면 함수는 false을 반환하고 성공하면 정수/문자열을 반환합니다. 이 경우 검사의 당신의 방법은,

+0

나는 진실하거나 틀린 것을 돌려주기 위해 단지 그것을 설정했다. 나는 문자열을 돌려주기를 좋아하지만 천천히 물건을 가져 가고있다. 관심의 대상에서 나는 ==와 ===의 차이점을 알고 있지만이 경우 어떻게 결과를 변경합니까? – TooManyCooks

0

이 함수는 boolean하지 codaaddict 말한대로 그런 다음 string

function check_input() 
{ 
     if(! [enter logic here]) 
      return false; # not return "false"; 

     return true; 
} 

를 반환되어 있는지 확인합니다 (성공적인 반환 값으로 반환) false0를 구분하지 않습니다 함수의 반환 값을 형식뿐만 아니라 동등한 값으로 확인하십시오. ===

+0

"유형을 확인하십시오"?그러나 이것은 요청 변수이므로 ** 항상 ** 문자열 – symcbean

+0

아니요, check_input()이 반환 될 때 유형을 확인하십시오. – Andy

관련 문제