我在写一个更长的函数时遇到了麻烦,所以我把它分解了,它似乎与strpos()
函数有关。
即使针头明显存在于大海捞针中,它也会返回假,因为我的生活中我无法解决原因,奇怪的是,如果我将针更改为“sam”,则变为真实......任何想法为什么?
function verify_url($url) {
if (strpos($url, "http://")) {
return $url;
} else {
echo "error";
}
}
$url = "http://sam.com";
echo verify_url($url);
答案 0 :(得分:5)
它返回0,而不是假。在if
测试中,PHP将整数值0计算为布尔值false。
使用strpos($url, "http://") !== false
检查值和数据类型。它被称为严格比较。
答案 1 :(得分:1)
将if (strpos($url, "http://"))
替换为下面的if (strpos($url, "http://") !== false)
。
0
它正在提供false
(而不是http://
),因为它在0th
位置找到了{{1}}