2016-09-23 5 views
0
$comet = $this->model->getActiveComet($userId); 
$string = 'notificationComet'; 

if ($comet !== $string) { 
    echo $comet; 
    echo $string; 
    echo "yes";exit; 
    } 

비교합니다.는 이상하게 다른 경우 잘못

그러나 그들 모두는 두 변수의 'notificationComet'

내가 getType로 테스트입니다 같은 값을()가있는 그들은 형식으로 문자열을 반환합니다.
!== 대신 !=을 사용했지만 차이는 없습니다.
조건을 다음과 같이 변경하면 if ($comet === $string) 블록 내부가 실행되지 않습니다.

if ($comet !== $string)의 조건이 모두 true 인 이유를 이해하지 못하겠습니까?

제 실수를 누군가에게 설명해주세요.

+0

'$ comet'과'$ string' 둘 다에'var_dump'를 시도 했습니까? –

+0

'$ comet'의 값을 오류의 원인이 될 수 있습니다. – Sasikumar

+0

왜'strcmp'를 사용하지 마십시오 – piyushj

답변

2

$comet = $this->model->getActiveComet($userId); 
$string = 'notificationComet'; 

if (strpos($comet,$string) === FALSE) { 
    echo $comet; 
    echo $string; 
    echo "yes";exit; 
    } 

내가 그 일을 할 생각 ... 다음 사용하십시오.

+0

예 작품 ... 무슨 문제이고 왜 strpos를 사용해야합니까? – 112233

+0

'strpos'는 실제로 하위 문자열 종류의 함수입니다. 나는 그것을 권장하지 않습니다. 그러나 어쨌든 그것은 그것을 사용하고 싶은 방식에 달려 있습니다. – piyushj

+0

@KEREN. strpos는 문자열의 하위 문자열이 처음 나타나는 위치를 찾는 데 사용됩니다. 문자열의 모든 인스턴스에 대해 권장되는대로 사용할 수 있습니다. – victor