Php 为什么此代码返回“quot;真的;?

Php 为什么此代码返回“quot;真的;?,php,string,validation,Php,String,Validation,我在以下代码中遇到了一些奇怪的情况: $string = '///'; var_dump(!stripos($string, '//')); 此代码部分返回true。现在看下一个代码部分: $string = 'a//'; var_dump(!stripos($string, '//')); 此代码部分返回false。 在我看来,第一个示例也应该返回false,但事实并非如此。我做错了什么?stripos返回字符串的第一个匹配位置 在第一种情况下,它是起始字符的第一个字符(位置0),在第二

我在以下代码中遇到了一些奇怪的情况:

$string = '///';
var_dump(!stripos($string, '//')); 
此代码部分返回
true
。现在看下一个代码部分:

$string = 'a//';
var_dump(!stripos($string, '//'));
此代码部分返回
false

在我看来,第一个示例也应该返回
false
,但事实并非如此。我做错了什么?

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

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

转换为布尔值并将其反转

0
为false,因此
!0
为真

1
是真的,所以
!1
为false。

执行
变量转储(!stripos($string,'/')!0
是真的。@MrTux,是的,你是对的:)我完全忘记了,谢谢)