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

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

比較如上面的代碼中,僅當$comet值不匹配$string它應該執行任何大括號內從而退出。古怪如果別的錯誤

但是它們兩者具有兩個變量中的哪個「notificationComet」

我測試的GetType相同的值(),並且它們返回字符串作爲類型。
我用!=代替!==,沒什麼區別。
如果我將條件更改爲:if ($comet === $string)塊內部沒有得到執行。

我只是不明白爲什麼條件是trueif ($comet !== $string)因爲他們都保持相同的價值?

請向我解釋一下我犯的錯誤?

+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