这对我来说似乎很奇怪,但也许有一个简单的解释。
为什么以下代码块会导致false
,尽管针头绝对是大海捞针的一部分?
if(strpos("Ø25xØ2", "Ø")){
echo "true";
} else {
echo "false";
}
答案 0 :(得分:3)
strpos在偏移0处找到该字符串,其结果为false。要真正检测是否找不到,您需要使用===
或!==
operators明确检查和类型,例如:
if (strpos("Ø25xØ2", "Ø") !== false) {
echo "true";
} else {
echo "false";
}
手册中也详细介绍了这一点。
答案 1 :(得分:0)
strpos
将返回0
。但0
评估为布尔false
,因此您的if
条件失败。
您需要与false
进行比较,如果根本找不到针,则返回值为:
if (false !== strpos("Ø25xØ2", "Ø")) {
echo "true";
} else {
echo "false";
}