Pet*_*ete 4 php boolean strpos stripos
考虑以下示例:
$a='This is a test';
Run Code Online (Sandbox Code Playgroud)
如果我现在这样做:
if(strpos($a,'is a') !== false) {
echo 'True';
}
Run Code Online (Sandbox Code Playgroud)
它得到:
True
Run Code Online (Sandbox Code Playgroud)
但是,如果我使用
if(strpos($a,'is a') === true) {
echo 'True';
}
Run Code Online (Sandbox Code Playgroud)
我什么也得不到。为什么!==false不是===true在这种情况下我检查了 PHP 文档,strpos()但没有找到任何解释。
返回针相对于 haystack 字符串开头的位置(与偏移量无关)。另请注意,字符串位置从 0 开始,而不是 1。
如果未找到针,则返回 FALSE。
如果没有找到针,它只返回一个布尔值。否则它将返回一个整数,包括 -1 和 0,以及针出现的位置。
如果你做过:
if(strpos($a,'is a') == true) {
echo 'True';
}
Run Code Online (Sandbox Code Playgroud)
你通常会得到预期的结果,因为任何正整数都被认为是一个真值,并且因为当你使用==运算符时类型杂耍,结果将是真的。但是,如果字符串位于字符串的开头,则由于返回的零是假值,因此将等同于 false。