2014-03-01 5 views
0

쉼표로 구분 된 문자열을 포함하는 변수가 있습니다. 이것은 implode() 함수를 사용하여 배열 요소에서 동적으로 생성됩니다. 때로는 아무것도 포함하지 않으며, 때로는 쉼표로 구분 된 1/2/3/4 문자열을 포함합니다. 나는이 쉼표로 구분 된 문자열 안에 다른 문자가 있는지 여부를 확인하고 그 문자열이있는 경우 if 내부에 쓰여진 명령을 수행합니다. 하지만 나는 짹짹의 현재 있지만 쉼표로 구분 된 값 안에 "Other" 문자열을 결코 감지하지 못하는 문제에 직면하고있어. 이 점에서 누군가 저를 도울 수 있습니까? 사전에아래의 경우 strpos 구현에 문제가 있습니까?

$form_data['que_issue'] = implode(",", $request['que_issue']); 

if(strpos($form_data['que_issue'],"Other")) { 
    echo "In If"; 
    die; 
    if(!$this->mValidator->validate($form_data['que_issue_comment'], "required", "true")) 
     $this->mValidator->push_error($errors_msgs['que_issue_comment_blank'], 'que_issue_comment'); 
    elseif(!$this->mValidator->validate($form_data['que_issue_comment'], 'maxlength', '100')) 
     this->mValidator->push_error($errors_msgs['que_issue_comment_length_invalid'], 'que_issue_comment'); 
} else 
    echo "In a else"; 
die;//Its always going in else part only 

감사 : 다음 참고로 내 코드입니다.

+1

뭔가를 시도해야합니다. 'false '로 비교를 추가해야합니다 :'strpos ($ form_data ['que_issue '], "Other"! == false' – hindmost

답변

1

문자열이 문자열의 시작 부분에서 일치하는 경우 strpos는 0을 반환합니다. 그러나 0은 PHP에 의해 false로 해석됩니다.

항상 문서를보고 "실패"하고 비교할 때 특정 반환 유형/값이 무엇인지 확인하십시오. `하여 문자열,`strpos` 반환`0`의 시작에서 발생하고 조건이 실패 Other`이 경우

if(strpos($form_data['que_issue'],"Other") !== false) 
1

에서이

if (strpos($form_data['que_issue'],'Other') !== false) {