位置: 编程技术 - 正文

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

  • 支付工资代扣个税会计科目
  • 企业建厂房购进材料可以抵扣吗
  • 企业卖车需要交印花税吗
  • 扣非净利润为什么比净利润低
  • 补发工资怎么补发
  • 超市卡发票可以抵扣吗
  • 一般纳税人企业所得税税率
  • 挂其他应付款的会计分录
  • 土地出让金评估费怎么算
  • 现金股利和股票股利的区别
  • 小规模纳税人取得的专票转为一般纳税人之后能抵扣吗
  • 增值税当月抵扣吗
  • 产品销售返利模式
  • 事业单位职工福利费支出范围
  • 简易计税的应交所得税
  • 汽车修理费增值税税率
  • 有开发票就要交印花税吗?
  • 供应商开免税的发票,为何还要收3个点税金?
  • 防伪税控开具发票明细表
  • 季度不超过30万免税分录
  • 招标文件中资金性质应填什么
  • 小型微利企业要交残保金吗
  • 持有至到期投资减值准备
  • 对某公司的了解
  • 打开浏览器时间长
  • 开机要按f1才能启动
  • linix unix
  • 海康工业相机彩色改黑白设置
  • 消费者取得哪种权利
  • 建筑企业结转成本的依据是什么
  • js点击li
  • 多表联动查询
  • 损益类科目调整影响所得税吗为什么
  • 材料款零头抹掉怎么做凭证
  • 业务宣传费列支合理性
  • 关于持股平台的法律法规
  • 计提坏账准备需要确认递延所得税吗
  • 盈余公积转增会计分录
  • 服务类收入确认
  • 淘宝天猫开票是普票还是专票
  • php手机验证码验证
  • 非独立核算与独立核算
  • 上期金额是本年累计金额吗
  • 企业电子发票重开流程
  • 外经证办好了后怎么开票
  • 房产税的纳税义务人是征税范围内房屋产权所有人
  • 自行开具增值税专用发票怎么开
  • 小规模纳税人取得普通发票可以抵扣吗
  • 银行卡被误扣多少钱
  • 项目回款是什么意思
  • 住宅可以注册什么类型的公司
  • 购买专利后有占有权吗
  • 先计提所得税还是先出报表
  • 购置固定资产进项税处理的变迁
  • 业务招待算什么费用
  • 未分配利润是什么会计科目
  • 建账过程中应注意的事项
  • Win2003下APACHE+PHP5+MYSQL4+PHPMYADMIN 的简易配置方法
  • 受限怎么解除
  • 怎样升级智慧中小学版本软件
  • 随机产生10个数
  • centos支持哪些cpu
  • 如何解决电脑wifi无法上网
  • win1010586升级到最新
  • win1020h2版好不好
  • 电脑开机后出现win7画面后一直黑屏
  • js简单实现点击按钮商品加入购物车
  • css弹出层
  • Bullet之了解Force Torque Impulse
  • Unity3D游戏开发标准教程吴亚峰于复兴人民邮电出版社
  • re engine引擎
  • dom教程
  • unity3d,C#使用sqlite作为数据库解决方案思路
  • jquery cookie使用
  • jquery的哪个方法可以绑定mouseover
  • 税务要求实名认证
  • 增值税电子普通发票需要盖章吗
  • 居民个人从境外公司获得分红
  • 生育登记网上服务大厅山东
  • 公司以融资租赁形式从事非法放贷业务,,能否让法院判
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设