PHP弱类型安全问题总结
如果传入给出strcmp()的参数是数字呢?
strcmp这种特性在攻防平台中的pass check有考到。 switch() 如果switch是数字类型的case的判断时,switch会将其中的参数转换为int类型。如下:
这个时候程序输出的是i is less than 3 but not negative,是由于switch()函数将$i进行了类型转换,转换结果为2。 in_array() 在PHP手册中,in_array()函数的解释是bool in_array ( mixed $needle , array $haystack [, bool $strict = FALSE ] ),如果strict参数没有提供,那么in_array就会使用松散比较来判断$needle是否在$haystack中。当strince的值为true时,in_array()会比较needls的类型和haystack中的类型是否相同。
可以看到上面的情况返回的都是true,因为’abc’会转换为0,’1bc’转换为1。 array_search()与in_array()也是一样的问题。
(编辑:淮北站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |