Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php STRPO未评估到我认为应该的程度_Php_Strpos - Fatal编程技术网

Php STRPO未评估到我认为应该的程度

Php STRPO未评估到我认为应该的程度,php,strpos,Php,Strpos,我在正确评估STRPO时遇到问题 $status = "L"; $x = strpos($status,'L'); echo var_export($x,true); echo "<br/>"; if (strpos($status,'L') === true) {echo "L is there!.";} else {echo "No L Found!";} 根据我对strpo和“==”与“==”的理解,这应该是找到L 我不明白什么?不返回true,如果找不到字符串则返回fals

我在正确评估STRPO时遇到问题

$status = "L";
$x = strpos($status,'L');
echo var_export($x,true);
echo "<br/>";
if (strpos($status,'L') === true) {echo "L is there!.";}
else {echo "No L Found!";}
根据我对strpo和“==”与“==”的理解,这应该是找到L

我不明白什么?

不返回true,如果找不到字符串则返回false,如果找到索引则返回index

从官方文件:

返回针相对于干草堆字符串开头的位置(与偏移无关)。还要注意,字符串位置从0开始,而不是从1开始

如果未找到指针,则返回FALSE

不返回true,如果找不到字符串,则返回false;如果找到索引,则返回index

从官方文件:

返回针相对于干草堆字符串开头的位置(与偏移无关)。还要注意,字符串位置从0开始,而不是从1开始

如果未找到指针,则返回FALSE


您确实需要进行严格的比较。你只需要做相反的事情

if (strpos($status, 'L') !== false) {
    echo "L is there!.";
} else {
    echo "No L Found!";
}
当使用
==true
进行计算时,
strpos($status,'L')
必须返回一个布尔值
true
,而不仅仅是一个计算结果为true的值,正如您在文档中看到的,
strpos
将永远不会返回该值

如果改用
==true
,它有时会起作用,只有当L不是字符串中的第一个字符时才会起作用。当它是第一个字符时,
strpos($status,'L')
将返回
0
,该值不会计算为
true
,但字符串中的任何其他位置都将返回一个正整数,该值为


由于
false
是未找到搜索字符串时函数返回的值,因此唯一可靠的方法是对
false
进行严格比较,您确实需要执行严格比较。你只需要做相反的事情

if (strpos($status, 'L') !== false) {
    echo "L is there!.";
} else {
    echo "No L Found!";
}
当使用
==true
进行计算时,
strpos($status,'L')
必须返回一个布尔值
true
,而不仅仅是一个计算结果为true的值,正如您在文档中看到的,
strpos
将永远不会返回该值

如果改用
==true
,它有时会起作用,只有当L不是字符串中的第一个字符时才会起作用。当它是第一个字符时,
strpos($status,'L')
将返回
0
,该值不会计算为
true
,但字符串中的任何其他位置都将返回一个正整数,该值为


由于
false
是未找到搜索字符串时函数返回的值,因此唯一可靠的方法是与
false

进行严格比较,这是否意味着我需要使用!==false而不是===true?我一直认为,如果它实际上没有设置为布尔值“false”,那么与true相比的任何东西都会返回true。不是这样吗?回答正确,虽然很简短。您可能需要添加文档的链接或引用。或者甚至解释为什么在这种情况下也是
true!=1
@Jeff当然,请稍候,很抱歉,这是否意味着我需要使用!==false而不是===true?我一直认为,如果它实际上没有设置为布尔值“false”,那么与true相比的任何东西都会返回true。不是这样吗?回答正确,虽然很简短。您可能需要添加文档的链接或引用。或者甚至解释为什么在这种情况下也是
true!=1
@Jeff当然可以等一下,很抱歉