为什么这段代码会返回“true”?

时间:2017-02-26 17:54:18

标签: php string validation

我有以下代码的奇怪情况:

$string = '///';
var_dump(!stripos($string, '//')); 

此代码部分返回true。现在看看下一个代码部分:

$string = 'a//';
var_dump(!stripos($string, '//'));

此代码部分返回false。 在我看来,fisrt示例也应该返回false,但事实并非如此。我做错了什么?

1 个答案:

答案 0 :(得分:0)

stripos返回字符串第一个匹配的位置。

在第一种情况下,这是开始的第一个字符(位置0),在第二种情况下,它是第二个字符(位置1)。

!转换为布尔值并反转它。

0为false,因此!0为真。

1为真,因此!1为假。