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如果没有匹配项,它将返回

问题是你不应该==用来比较0false;您应该这样使用===

if(strpos("abcdefghijklmnop","http://www.") === 0) {

}

要么 :

if(strpos("abcdefghijklmnop","http://www.") === false) {

}

有关更多信息,请参见比较运算符:

  • $a == $bTRUE如果$a等于$b
  • $a === $bTRUE如果$a等于$b,和 。

并且,引用以下手册的页面strpos

这个函数可以返回布尔 FALSE,也可以返回其评估到非布尔值 FALSE,例如0""

请阅读布尔值部分以获取更多信息。

使用该===

运营商的测试此函数的返回值。

以上是 PHP的5 strpos()返回0和false之间的区别? 的全部内容, 来源链接: utcz.com/qa/410680.html

回到顶部