位置: 编程技术 - 正文

深入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函数)

  • 企业持股分红
  • 商誉 会计
  • 以前年度损益调整属于哪类科目
  • 专用发票网上勾选不了
  • 到国税局领增值税发票需带什么
  • 营业成本包括期初存货成本和期末存货成本
  • 还有预算外资金的说法吗
  • 应收票据和应收账款的区别举例
  • 税金及附加包括个人所得税吗
  • 当月商品已出库货款未收到怎么做分录?
  • 财务报表里现金是什么
  • 销售人员的提成一般是多少
  • 所得税汇算清缴补税的会计处理
  • 通用机打发票什么样子
  • 土地使用税如何计算缴纳
  • 固定资产投资成本的回收与实物更新
  • 回盘的模板
  • 公司购买进口产成品关税会计分录怎么做?
  • 联想y400怎么装win10
  • 备用金的会计分类
  • 微软发布新的免费 Win11 虚拟机 (2302)
  • 劳务公司找的临时工工伤怎么赔
  • 数字证书认证系统
  • php字符串赋值
  • PHP:Memcached::incrementByKey()的用法_Memcached类
  • window10怎么禁用系统弹窗
  • 销售汇总表格模板
  • url是什么软件
  • 贷款损失准备的作用
  • 工程项目成本预算表
  • 季度所得税表中营业收入填万元还是总金额
  • 认缴没有实缴怎么做账
  • rgbt目标跟踪
  • 3d reconstruction
  • 前端必学课程
  • before跟after区别
  • 多交增值税可以做营业外支出吗
  • 校验码如何查询
  • 免征增值税的规定
  • 卸载sql server 2008
  • 小规模纳税人免增值税的账务处理
  • 原值净值怎么算
  • 怎样识别真假增值税发票
  • 出售固定资产不确认收入
  • 房地产企业增值税预征率
  • 买车哪些费用可以计入固定资产
  • 所得税费用的账目处理
  • 增值税征收类型
  • 税法的个人所得税
  • 一般纳税人企业所得税税率多少
  • 其他综合收益转入盈余公积和未分配利润
  • 生育津贴是怎么申请
  • 研发费用加计扣除的条件
  • 水利建设基金申报表哪里
  • 股权转让是否需要全体股东签字
  • 收到运输服务发票怎么做账务处理呢
  • 劳务派遣公司账务
  • 收到合同后的整个流程
  • 企业用地手续办理流程
  • 公司员工报销油费
  • 个人如何成立公司
  • sqlserver存储过程声明变量
  • sql server 错误
  • SQL Select语句完整的执行顺序
  • windows10的改进
  • centos which
  • win7系统打开软件慢的原因
  • ghost操作指南
  • win7系统网页无法调用摄像头
  • windows 10 升级
  • cocos creator特效制作
  • 相机渲染图片
  • js基于什么语言
  • js原生实现ajax
  • jquery遍历元素并赋值
  • js对象属性值
  • python怎么编函数
  • 自定义dialog屏蔽按键
  • 2022年最新最全执业药师继续教育考试答案
  • 惠济区第五中学怎么样
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设