gpt4 book ai didi

php 5 strpos() 返回 0 和 false 之间的区别?

转载 作者:行者123 更新时间:2023-11-29 15:19:57 25 4
gpt4 key购买 nike

if(strpos("http://www.example.com","http://www.")==0){ // do work}

我希望这能解决为 true,事实也确实如此。但是当我这样做时会发生什么

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) {

}


欲了解更多信息,请参阅Comparison Operators :

  • $a == $b将是TRUE如果$a等于$b .
  • $a === $b将是TRUE如果$a等于$b ,并且它们属于同一类型

并且,引用 the manual page of strpos :

This function may return Boolean FALSE, but may also return a non-Boolean value which evaluates to FALSE, such as 0 or "".
Please read the section on Booleans for more information.
Use the === operator for testing the return value of this function.

关于php 5 strpos() 返回 0 和 false 之间的区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59435370/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com