我有以下代码的奇怪情况:
$string = '///';
var_dump(!stripos($string, '//'));
此代码部分返回true
。现在看看下一个代码部分:
$string = 'a//';
var_dump(!stripos($string, '//'));
此代码部分返回false
。
在我看来,fisrt示例也应该返回false
,但事实并非如此。我做错了什么?
答案 0 :(得分:0)
stripos
返回字符串第一个匹配的位置。
在第一种情况下,这是开始的第一个字符(位置0),在第二种情况下,它是第二个字符(位置1)。
!
转换为布尔值并反转它。
0
为false,因此!0
为真。
1
为真,因此!1
为假。