您现在的位置是:自如初>PHP基础PHP基础
PHP安全之道之数组比较比较缺陷
小白
2020-10-11 22:01:15
【PHP基础】
368人已围观
简介当使用in_array()或array_search()函数时,如果$strict参数没有设置为true,则in_array()或array_seach()将使用松散比较来判断$needle是否在$haystack中。
当使用in_array()或array_search()函数时,如果$strict参数没有设置为true,则in_array()或array_seach()将使用松散比较来判断$needle是否在$haystack中。
in_array — 检查数组中是否存在某个值
in_array( mixed $needle, array $haystack[, bool $strict = FALSE] ) : bool
array_search — 在数组中搜索给定的值,如果成功则返回首个相应的键名
array_search( mixed $needle, array $haystack[, bool $strict = false] ) : mixed
问题示范
<?php
$arr = [0,1,3,'5'];
$sear1 = 'www.ziruchu.com';
$sear2 = '1www.ziruchu.com';
var_dump(in_array($sear1, $arr)); // true
var_dump(array_search($sear1, $arr)); // 下标:0
var_dump(in_array($sear2, $arr)); // true
var_dump(array_search($sear2 , $arr)); // 下标:1
解决之道使用严格检查
<?php
$arr = [0,1,3,'5'];
$sear1 = 'www.ziruchu.com';
$sear2 = '1www.ziruchu.com';
var_dump(in_array($sear1, $arr , true)); // false
var_dump(array_search($sear1, $arr ,true)); // false
var_dump(in_array($sear2, $arr ,true)); // false
var_dump(array_search($sear2 , $arr ,true)); // false
我是小白,期待和优秀的你一起同行!
小白
2020年10月11日
很赞哦!(3)
下一篇:PHP设计模式之详记注册树模式
相关文章
文章评论
点击排行

- CentOS8编译安装(升级)php7.4.1及问题解决
- 全网最细且手把手一起学CentOS8.0源码编译安装LAMP环境之apache2源码安装(一)
- ThinkPHP6使用Base公共控制器redirect()不起作用的解决方法
- 全网最细且手把手一起学CentOS8.0源码编译安装LNMP环境之nginx源码安装(一)
- WSL安装Linux报错WslRegisterDistribution failed with error: 0x80370102
- 快速上手Laravel6 Eloquent ORM 增删改查
- 超级详细的CentOS8安装composer
- ThinkPHP6上传图片至七牛云