对于使用UTF-8的strpos,'!== false'和'=== true'

时间:2015-03-04 04:00:37

标签: php utf-8 strpos

我现在正在使用strpos来检查字符串是否存在于数组中。问题是,当字符串包含UTF-8字符时,当我将字符串与使用true进行比较时,它不会返回=== true。我需要使用!== false来返回我的预期结果。但是,如果我使用===true!==false并不重要,如果字符串不包含UTF-8字符,则返回true。

所以我想问的是为什么我必须使用!== false比较UTF-8字符而不是=== true?此外,=true!=false相比是否相同,哪个更适合在比较中返回true?

The Online Example

1 个答案:

答案 0 :(得分:1)

来自http://php.net/strpos

  

返回针相对于针的位置   haystack字符串的开头(与offset无关)。另请注意   字符串位置从0开始,而不是1。

     

如果未找到针,则返回FALSE。

Strpos不应该返回true,它应该返回一个引用位置的整数。