为什么我在使用php strps函数时会得到这个意外的结果?
我试图使用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
$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