php strpos总是返回false,我想得到一个正确的答案

时间:2018-12-15 09:59:36

标签: php strpos

我得到一个项目,并且看到一段代码,如下所示:

wrapper.prop()

在任何情况下,我都输入'd'或其他参数,页面总是返回'not'。  那么,如何输入正确的参数使页面返回“存在”?

3 个答案:

答案 0 :(得分:4)

strpos()永远不会返回TRUE。如果找到字符串,则返回位置。如果找不到该字符串,则返回FALSE。因此,您应该比较FALSE,而不是TRUE

if (strpos($orderby, 'd') === false) {
    echo "not exists";
} else {
    echo "exists";
}

答案 1 :(得分:2)

您的测试并不是说它正在返回false,只是strpos()永远不会返回布尔值true的值。相反,它将返回一个带有找到的字符串位置的整数。通常情况下会是

if(strpos($orderby,'d') !== false){
    echo "exists";
}else{
    echo "not ";
}

答案 2 :(得分:1)

如果strpos找到一个匹配项,它将不返回true,而是返回偏移量-因此您的strpos($orderby,'d')===true永远不会被击中。

尝试一下:

<?php
$orderby=$_REQUEST['orderby'];
if($o=strpos($orderby,'d')===false){
    echo "not ";
}else{
    echo "exists at offset $o";
}?>