2009-10-20 62 views
3

我試圖讓strpos搜索字符串變量$string短語「測試」,如果它不包含「測試」另一個變量$change被重新定義爲$string2(其中$change之前已定義)「strpos」函數的錯誤? PHP

if (strpos($string, 'test') == false) { 
    $change = $string2; 
    break; 
}  

但不幸的是它不起作用。

以上是否有錯誤?

謝謝。

+0

可能重複http://stackoverflow.com/questions/1004897/question-about-strpos-in-php ) – 2012-07-17 03:16:36

回答

6

如果strpos未找到字符串,在PHP中的類型非特定條件中等於0,則返回false。比較使用strpos時,請確保使用===運算符。

if (strpos($string, 'test') === false) { 
    $change = $string2; 
    break; 
} 
+1

+1協議。 – mauris 2009-10-20 01:50:18

3

嘗試使用

if (strpos($string, 'test') === false) 

=== instead of == 
3

strpos可以返回「假」,或者可以返回「0」,這可以被誤讀爲假,因此代替使用==比較運算符(意​​思是「等於」 )你必須使用===(意思相同)。你也可以考慮三元語句而不是一休:

$change = (strpos($string, 'test') === false) ? $string2 : $change; 
[問題關於PHP strpos(的