Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/250.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 strps函数时会得到这个意外的结果?_Php_String_Strpos - Fatal编程技术网

为什么我在使用php strps函数时会得到这个意外的结果?

为什么我在使用php strps函数时会得到这个意外的结果?,php,string,strpos,Php,String,Strpos,我试图使用php的strps函数在另一个字符串中搜索一个字符串。我执行了两个不同的搜索,都包含冒号字符。我能看到的唯一区别是结肠是出现在“针”的开头还是结尾 我的代码如下: <?php $string = 'abc:def'; echo strpos($string,'abc:') ? 'abc: true' : 'abc: false'; echo ' / '; echo strpos($string,':def') ? ':def true' : ':def false'; Str

我试图使用php的strps函数在另一个字符串中搜索一个字符串。我执行了两个不同的搜索,都包含冒号字符。我能看到的唯一区别是结肠是出现在“针”的开头还是结尾

我的代码如下:

<?php
$string = 'abc:def';
echo strpos($string,'abc:') ? 'abc: true' : 'abc: false';
echo ' / ';
echo strpos($string,':def') ? ':def true' : ':def false'; 

Strpos返回给定字符串(指针)在其他字符串(堆栈)中的位置。见参考资料-。strpo的正确用法(注意它是
!=
而不是
!=
,因为我们还想检查类型):

求和时,strpos返回一个位置的数值(例如0或5)或
false

至于为什么你的片段

echo strpos($string,':def') ? ':def true' : ':def false'; 

返回true-在PHP中,如果将每个非零整数作为布尔值进行比较,并且strpos返回的值大于零(在本例中可能为“4”),则将其视为
true
。有关更多详细信息,请参阅。

Strpos返回给定字符串(指针)在其他字符串(堆栈)中的位置。见参考资料-。strpo的正确用法(注意它是
!=
而不是
!=
,因为我们还想检查类型):

求和时,strpos返回一个位置的数值(例如0或5)或
false

至于为什么你的片段

echo strpos($string,':def') ? ':def true' : ':def false'; 
返回true-在PHP中,如果将每个非零整数作为布尔值进行比较,并且strpos返回的值大于零(在本例中可能为“4”),则将其视为
true
。有关更多详细信息,请参阅。

根据

查找haystack字符串中第一个出现的指针的数字位置。 返回针相对于干草堆字符串开头的位置(与偏移无关)。还要注意,字符串位置从0开始,而不是从1开始

所以

正在返回0。因此,它在呼应:

abc: false
依照

查找haystack字符串中第一个出现的指针的数字位置。 返回针相对于干草堆字符串开头的位置(与偏移无关)。还要注意,字符串位置从0开始,而不是从1开始

所以

正在返回0。因此,它在呼应:

abc: false
在您返回
true/false
结果的情况下,您需要根据返回结果进行检查 试一试

在您返回
true/false
结果的情况下,您需要根据返回结果进行检查 试一试


您需要使用布尔比较,只有当不存在匹配项时,它才会返回false

$string = 'abc:def';
echo strpos($string,'abc:') !== false ? 'abc: true' : 'abc: false';
echo ' / ';
echo strpos($string,':def') !== false ? ':def true' : ':def false'; 

strpos($string, "abc") will return (int) 0
(int) 0 !== false ---> true statement
(int) 0 === true ---> false statement 

您需要使用布尔比较,只有当不存在匹配项时,它才会返回false

$string = 'abc:def';
echo strpos($string,'abc:') !== false ? 'abc: true' : 'abc: false';
echo ' / ';
echo strpos($string,':def') !== false ? ':def true' : ':def false'; 

strpos($string, "abc") will return (int) 0
(int) 0 !== false ---> true statement
(int) 0 === true ---> false statement 
$string = 'abc:def';
echo strpos($string,'abc:') !== false ? 'abc: true' : 'abc: false';
echo ' / ';
echo strpos($string,':def') !== false ? ':def true' : ':def false'; 

strpos($string, "abc") will return (int) 0
(int) 0 !== false ---> true statement
(int) 0 === true ---> false statement