';!==false';和';===true';在strpos上使用UTF-8


'!== false' and '=== true' on strpos with UTF-8

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

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

在线示例

来源http://php.net/strpos

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

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

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