这是PHP中的错误吗?

Was*_* A. 2 php string

<?php

if(stripos('http://cp.uctorrent.com', 'cp.utorrent.com') >= 0){
    echo "Good1";
}else{
     echo "Bad1";
}

if(stripos('http://uctorrent.com', 'cp.utorrent.com') >= 0){
    echo "Good2";
}else{
    echo "Bad2";
}

?>
Run Code Online (Sandbox Code Playgroud)

输出是

Good1Good2

应该是

Good1Bad2

krt*_*tek 7

<?php
  if(false >= 0) echo "Good";
  else echo "Bad";
  // this code prints Good
?>
Run Code Online (Sandbox Code Playgroud)

这不是一个bug,它是一个"奇怪的"布尔转换.

stripos 在找不到字符串时返回false,在PHP中false返回0.

直接来自文档(问题是相反的):

警告此函数可能返回布尔值FALSE,但也可能返回非布尔值,其值为FALSE,例如0或"".有关更多信息,请阅读有关布尔值的部分.使用===运算符测试此函数的返回值.