当针在大海捞针时,strpos()返回false

时间:2013-05-15 12:10:44

标签: php strpos

我在写一个更长的函数时遇到了麻烦,所以我把它分解了,它似乎与strpos()函数有关。

即使针头明显存在于大海捞针中,它也会返回假,因为我的生活中我无法解决原因,奇怪的是,如果我将针更改为“sam”,则变为真实......任何想法为什么?

function verify_url($url) {
    if (strpos($url, "http://")) {
        return $url;
    } else {
        echo "error";
    }
}


$url = "http://sam.com";

echo verify_url($url);

2 个答案:

答案 0 :(得分:5)

它返回0,而不是假。在if测试中,PHP将整数值0计算为布尔值false。

使用strpos($url, "http://") !== false检查值和数据类型。它被称为严格比较。

手动:Comparison Operatorsstrpos()

答案 1 :(得分:1)

if (strpos($url, "http://"))替换为下面的if (strpos($url, "http://") !== false)

0

它正在提供false(而不是http://),因为它在0th位置找到了{{1}}