【PHP】in_array需要注意的点
in_array (PHP 4, PHP 5, PHP 7) in_array — 检查数组中是否存在某个值 说明 ---- bool in_array ( mixed $needle , array $haystack [, bool $strict = FALSE ] ) 大海捞针,在大海(haystack)中搜索针( needle),如果没有设置 strict 则使用宽松的比较。 参数 ---- needle 待搜索的值。 Note: 如果 needle 是字符串,则比较是区分大小写的。 haystack 待搜索的数组。 strict 如果第三个参数 strict 的值为 TRUE 则 in_array() 函数还会检查 needle 的类型是否和 haystack 中的相同。 返回值 ---- 如果找到 needle 则返回 TRUE,否则返回 FALSE。
看问题:
<?php $array = range(0, 7); $string = 's'; if (in_array($string, $array)) { echo 1; } else { echo 2; } // 输出结果为 1
很显然这并不是我们期望的结果。但究竟为啥会这样呢?
因为in_array()
会将0
和's'
进行比较,0
是number
类型,'s'
是string
类型,根据php manual
中Comparison Operators
一章的说明可知,number
和string
进行比较的时候,会先将string
类型首先转化为number
,然后再进行比较操作。 's'
转化为number
的结果为0
,而0 == 0
的结果是true
,所以in_array($string, $array)
的结果也是 true
。
如果把in_array()
的第三个参数strict
设置为true
,比较的时候就会判断值和类型是否都相等。如果都相等的话,才会返回true
,否则返回false
。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Java小白进阶笔记(2)-变量和数据类型
复习Java知识,主要是一边看偏头痛杨的博客,一边完成博主布置的任务。这是看2.偏头痛杨的Java入门教学系列之变量&数据类型篇 的作业: 1.Java有多少种数据类型,数据类型的分类? 两种数据类型: 基本数据类型 引用数据类型除了八种基本数据类型,其他的都是引用数据类型。 2.Java的工作机制? Java程序的源代码(.java)编译成虚拟机(JVM)能看懂的字节码(.class),然后再由虚拟机解释执行成对应的操作系统能看懂的机器码 3.自动类型转换与强制类型转换的规则? 从小到大自动转 从大到小强制转 自动类型转换: byte->short->int->long->float->double char->int->long->float->double 表达式类型的自动提升: 当表达式中有多个数据类型运算式,自动提升为容量最大的数据类型。 byte,short,char之间不会自动转换,首先都提升为int 整个表达式的类型自动提升到与表达式中最高等级操作数同样的类型 强制类型转换: 容量大的数据类型转换为容量小的数...
- 下一篇
django2集成DjangoUeditor富文本编辑器
富文本编辑器,在web开发中可以说是不可缺少的。django并没有自带富文本编辑器,因此我们需要自己集成,在这里推荐大家使用DjangoUeditor,因为DjangoUeditor封装了我们需要的一些功能如文件上传、在后台和前台一起使用等,非常方便。 一、下载DjangoUeditor: 1.python3:https://github.com/twz915/DjangoUeditor3/(直接下载zip) 2.python2:https://github.com/zhangfisher/DjangoUeditor(直接下载zip,或 pip installDjangoUeditor) 二、 新建django项目: 1. 在项目的根目录新建extra_apps文件夹并将我们下载好的zip文件解压打开后找到 DjangoUeditor将DjangoUeditor直接拷贝到我们项目的extra_apps中,如下: 2.在settings.py文件中添加两行代码:如下 sys.path.insert(0, os.path.join(BASE_DIR, 'apps'...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- SpringBoot2整合Redis,开启缓存,提高访问速度
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- Mario游戏-低调大师作品
- CentOS7,8上快速安装Gitea,搭建Git服务器
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- Linux系统CentOS6、CentOS7手动修改IP地址
- CentOS关闭SELinux安全模块