2015-12-28 27 views
0

請參見下面的問題:strpos()瘋狂 - 爲什麼它不起作用?

$str = "video-23984"; // returns false 
$str = " video-23984"; // returns true 
$search= "video"; 

if(strpos($str,$search)) { 
    echo "True"; 
}else { 
    echo "False"; 
} 

世界爲什麼$str = "video-23984"返回false?我能做些什麼來使它恢復真實?

+1

'is_int(strpos(...))'如果你正在尋找布爾測試,否則它返回bools **或**整數(其中'0'是可能的結果)。 – mario

+1

什麼是地獄馬里奧,這不是重複。另一個問題是不同的,即使它與相同的功能有關,它是回報。 – Phiter

+0

來自[PHP文檔](http://php.net/manual/en/function.strpos.php)的大警告 - 警告 此函數可能會返回布爾FALSE,但也可能會返回一個非布爾值,它會評估變爲假。有關更多信息,請閱讀布爾部分。使用===運算符來測試這個函數的返回值。' –

回答

0

在第一個字符串中,字video位於第一個位置,表示0

在第二個它在第二個位置,這意味着1。 由於您將它返回給if,因此0是false的布爾值。這就是爲什麼你得到false

+2

要得到一個完整的答案,你應該討論'=='和'==='(和'!='和'!==' ) –