2012-01-05 44 views
0

嗨,大家好,這真是令人驚歎的問題。Php strrpos檢測到沒有字符串,總是0的位置

我對strrpos有很多經驗,但這確實沒有道理。首先數組:

arrCopy => {     
    ["Codice"]=>     
    string(33) "Per sport d è numerico"     
    ["Maniche"]=>     
    string(15) " maniche corte "     
    ...    
    ["Taglia"]=>     
    string(8) "tg tg XL"     
} 

我要隔離在foreach循環「Taglia」的行爲,但我無法檢測它!

foreach ($arrCopy as $key=>$spec){ 
     echo gettype($key); // prints string 
     $tg= strpos(strtolower($key) , 'taglia'); // gives me 
//always 0 also with "Taglia" key 
      if ( $tg !== false || .... 
       // never goes there 

我在哪裏錯了?

回答

2

您應該針對FALSE測試strpos()的retval,以確定是否包含該字符串。

http://php.net/manual/en/function.strpos.php

這個函數可以返回布爾值FALSE,但也可能返回的值爲FALSE的非布爾值,例如0或「」。有關更多信息,請閱讀布爾部分。使用===運算符來測試此函數的返回值。

可能更好地使用strcmp - 你沒有那麼多試圖找到一個子字符串,以確保匹配。

+0

我使用的運營商像你說請我已經寫了 如果($ TG!==虛假 發現問題反正我是錯的if語句,抱歉打擾 – giuseppe 2012-01-05 18:14:26