PHP的5 strpos()返回0和false之间的区别?
if(strpos("http://www.example.com”,”http://www.")==0){ // do work}
我希望这能解决,但确实如此。但是当我这样做时会发生什么
if(strpos("abcdefghijklmnop","http://www.")==0){// do work}
这也传递到php 5上,因为据我所知,strpos返回false,它转换为0。
这是正确的思想/行为吗?如果是这样,在另一个字符串的开头测试该子字符串的解决方法是什么?
回答:
是的,这是正确的/预期的行为:
strpos``0
字符串开头有匹配项时可以返回false
如果没有匹配项,它将返回
问题是你不应该==
用来比较0
和false
;您应该这样使用===
:
if(strpos("abcdefghijklmnop","http://www.") === 0) {}
要么 :
if(strpos("abcdefghijklmnop","http://www.") === false) {}
有关更多信息,请参见比较运算符:
$a == $b
会TRUE
如果$a
等于$b
。$a === $b
将TRUE
如果$a
等于$b
,和 。
并且,引用以下手册的页面strpos
:
这个函数可以返回布尔
FALSE
,也可以返回其评估到非布尔值FALSE
,例如0
或""
。请阅读布尔值部分以获取更多信息。
使用该
===
运营商的测试此函数的返回值。
以上是 PHP的5 strpos()返回0和false之间的区别? 的全部内容, 来源链接: utcz.com/qa/410680.html