php in_array 的 坑

话不多说,直接上代码

$str = '7.php';

var_dump(in_array($str,range(0,100)));
die;

是 true

这是因为 php是弱类型语言,会把7.php强制转化 7 ,所以解决的办法是加 true

$str = '7.php';

var_dump(in_array($str,range(0,100),true));
die;

false

但是开启后,也会导致

$str = '7';

var_dump(in_array($str,range(0,100),true));
die;

为false