位置: 编程技术 - 正文

深入php内核之php in array(细说php)

编辑:rootadmin

推荐整理分享深入php内核之php in array(细说php),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:深入理解php内核,php内核源码,php内核源码,php8底层内核,php内核源码,php内核剖析,php内核剖析,php7内核剖析,内容如对您有帮助,希望把文章链接给更多的朋友!

先给大家介绍php in array函数基本知识热热身。

定义和用法

in_array() 函数在数组中搜索给定的值。

语法in_array(value,array,type)

参数 描述 value 必需。规定要在数组搜索的值。 array 必需。规定要搜索的数组。 type 可选。如果设置该参数为 true,则检查搜索的数据与数组的值的类型是否相同。

说明

如果给定的值 value 存在于数组 array 中则返回 true。如果第三个参数设置为 true,函数只有在元素存在于数组中且数据类型与给定值相同时才返回 true。

如果没有在数组中找到参数,函数返回 false。

注释:如果 value 参数是字符串,且 type 参数设置为 true,则搜索区分大小写。

无意中看到一段代码

测试了一下

[root@dev tmp]# time php b.phpreal 0m9.suser 0m4.ssys 0m0.s

竟然需要9s

in_array是这个样子的

深入php内核之php in array(细说php)

在 haystack 中搜索 needle,如果没有设置 strict 则使用宽松的比较。

needle

待搜索的值。如果 needle 是字符串,则比较是区分大小写的。

haystack

这个数组。

strict

如果第三个参数 strict 的值为 TRUE 则 in_array() 函数还会检查 needle 的类型是否和 haystack 中的相同。

那么我看一下源代码

第一步 在ext/standard/array.c 文件中

顺便看到了array_search,原来和in_array的内部实现基本一致

其中函数的参数 在./zend.h中

#define INTERNAL_FUNCTION_PARAM_PASSTHRU ht, return_value, return_value_ptr, this_ptr, return_value_used TSRMLS_CC

第二步 在ext/standard/array.c 文件中 查看php_search_array原型

我们发现 strict 这个值的不同有两种比较方式,看一下两个函数的不同之处

is_identical_function 检查类型是否相同

is_equal_function 不检查类型是否相同,所以需要隐式转换

PHP用mb_string函数库处理与windows相关中文字符及Win环境下开启PHP Mb_String方法 PHP用mb_string函数库处理与windows相关中文字符昨天想批处理以前下载的一堆文件,把文件里的关键内容用正则匹配出来,集中处理。在操作文件时遇到一

PHP防止刷新重复提交页面的示例代码 PHP防止刷新重复提交页面的示例代码作为phper,我们在开发和学习php过程中,难免要经常的接受处理表单数据,然而处理表单的时候总会有一个问题,困

PHP中set error handler函数用法小结 set_error_handler()函数设置用户自定义的错误处理函数。该函数用于创建运行时期间的用户自己的错误处理方法。该函数会返回旧的错误处理程序,若失败

标签: 细说php

本文链接地址:https://www.jiuchutong.com/biancheng/276041.html 转载请保留说明!

上一篇:谈谈你对Zend SAPIs(Zend SAPI Internals)的理解(谈谈你对人民美好生活的理解)

下一篇:PHP用mb_string函数库处理与windows相关中文字符及Win环境下开启PHP Mb_String方法(php中strcmp函数)

  • 公司不开票要交工会经费吗
  • 进口原料免税
  • 环保企业会计分录
  • 外勤会计主要是干什么
  • 技术类服务行业用不用开外经证
  • 聘用退休员工
  • 进口产品不付汇会造成什么
  • 工业企业成本会计核算的对象是什么
  • 土地增值税征收范围包括
  • 研发费用加计扣除条件
  • 住房租金专项附加扣除申报方式
  • 独立核算的生产车间是法律主体吗
  • 收到公益性捐赠所得税
  • 二手车公司销售二手车的税率
  • 房地产企业的土地使用税起始时间
  • 企业财产保险费率的影响因素
  • 个体工商户上月开发票超额了 ,定额改查账征收了
  • 手撕票可以报销么
  • 企业所得税年报更正申报
  • 仓储费怎么账务处理
  • 软件开发工资低
  • 团建费用是什么意思
  • 竣工决算调整入库流程
  • 预付款比例怎么算
  • 广告法 保险公司承保
  • 企业购入的专利权属于什么
  • dmc32.dll
  • 专项储备购买安全设备会计分录
  • 外购产品会计分录
  • 前端静态页面
  • 应收账款净额可以是负数吗
  • 债务重组利得计入其他收益还是营业外收入
  • python web开发方向的第三方库有哪些
  • php 文件目录
  • 政府补贴收入确认政策
  • 产品补发原来的要退吗
  • vue大型项目撑得住吗
  • 资产负债表各项目的填列依据是
  • 补交上年所得税怎么调表
  • 加油票没有纳税怎么办
  • 营业外收支核算的内容有哪些?
  • 公司代个人缴纳社保,但不发工资和交税
  • 家庭保洁服务包括什么
  • 维修费开专票怎么做账
  • 税务登记是需要原件还是复印件
  • 开票地址必须和营业执照上一样吗少个字号可以吗
  • 电子税务局没有增值税申报怎么办?
  • 固定资产折旧费用的账务处理
  • 做账时实收资本减少应该记在那一栏
  • 关税计入什么科目
  • 收汇结汇以什么汇率入账
  • 白条入账会计处理
  • 非营利组织相关论文
  • 预提费用汇算清缴如何调整
  • 税务局收款收据
  • 金融资产或金融负债初始入账价值
  • 退回的企业所得税计入什么科目
  • 审核通过的红字信息表可以删除吗
  • 开票信息指的是买方还是卖方
  • 计提利息为什么贷方是应付利息
  • 企业资质证书丢失怎么办
  • 工业企业进项税和销项税均为17%
  • 如何彻底释放k50至尊版性能
  • ubuntu怎么更改用户名
  • 怎么在centos中创建一个文件
  • vista和win10
  • 菜鸟教程官网app
  • win10怎么禁用device/credential guard
  • jsonarray fromobject
  • Node.js中的包管理工具是什么
  • [置顶]津鱼.我爱你
  • Android Fragment学习笔记(2) ----使用ListFragment显示列表(上)
  • js定义数字
  • shell脚本取n天前的日期
  • shell脚本中获取日期
  • 开发日记3雷火剑
  • javascript怎么学
  • 国家税务总局使用
  • 加计扣除为什么是税收优惠
  • 2021北京餐饮业发展趋势报告
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设