2011-11-24 5 views
1

나는 TRUE 또는 FALSE 또는 "Test_operation"을 반환하는 함수를 가지고 있으며, 몇 가지 작업을 반복하고 있습니다. 보시다시피 $comment_reply의 값은 Test_operation입니다.문자열 값이 참일 경우

$comment_reply = $this->Profunction->insert_comments(); 
echo $comment_reply; // returns Test_operation 
if ($comment_reply==TRUE) 
{ 
    echo json_encode('Success'); 
} 
elseif($comment_reply==FALSE) 
{ 
    echo json_encode('Failed'); 
} 
elseif($comment_reply =="test_operation") 
{ 
    echo json_encode('This Action Cannot be done!'); 
} 

하지만 여전히

if ($comment_reply==TRUE) 
{ 
    echo json_encode('Success'); 
} 

이 부분은 실행하기. 왜 그렇게됩니까?

는 그 함수에서 나는 다음과 같이 반환 오전 :

return TRUE;  // if all success 
return FALSE;  // if there is some problems 
return "Test_operation";  //No insertion need to be done,may be for preview purpose. 

해결 : 나는 문자열로 bool 값을 변경했습니다. 그래서 그것이 문제입니다,하지만 당신은 유형에 따라 가치를 평등을 적용 할 경우 === 연산자를 사용

return 'TRUE';  // if all success 
    return 'FALSE';  // if there is some problems 
    return "Test_operation";  //No insertion need to be done,may be for preview purpose. 
+0

==의 사용. 이 경우 솔루션이 작동하기는하지만 문자열의 동일성은 문자열의 까다로운 문제 일 수 있습니다. 필자는 정렬을 비교할 때 타입과 값을 비교하기 위해 ===를 사용하는 것이 좋습니다. 오, 제발 최선의 답변에 투표하는 것을 잊지 마세요, 귀하의 게시물에 대한 수용 등급은 일종의 낮은 것입니다. 감사합니다. 좋은 하루 되세요. – stefgosselin

+0

@stefgosselin ohh 죄송합니다. [첫 번째 답변 및 좋은 설명]을 수락했습니다. C#과 비교해 보면 php와 같은 모양이 정말 좋지 않지만 사용하기가 쉽습니다. – Red

+0

내 코드를'===' – Red

답변

3

확실하지 될 것입니다.

자세한 내용은 comparison operator page에서 확인할 수 있습니다.

해피 코딩

+0

으로 바꿨습니다. 고맙습니다.하지만'부울 '을 피하면이 문제를 피할 수 있다고 생각합니다. – Red

+0

원한다면, 내 친구. 부울은 괜찮습니다. PHP에서는 많은 것들을 == true로 기억해야하지만, ===는 예상대로 bool에만 true를 반환합니다. – stefgosselin

+0

저는 이제 C#에서 왔고 PHP를 사용해 보았습니다. 문제는 저와 관련이 있습니다. – Red

1

보십시오 당신은 정말 문제가, 당신은 논리 값을 피함으로써 그것을 회피 "해결"하지 않았다 === 대신

관련 문제