位置: 编程技术 - 正文

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

  • 购买二手车是否适用消费者权益保护法
  • 厂家返点是什么意思
  • 小微企业减免的增值税账务处理
  • 简易计税费
  • 餐饮公司开分店还需要办手续吗
  • 给客户多开了发票,下月少开可以吗?
  • 广告公司如何经营管理
  • 小企业会计准则和企业会计准则的区别
  • 同一控制下资产收购
  • 车间报销办公费计入什么科目
  • 非税收入包括哪些项目行政事业性收费
  • 个人独资公司可以控股其他公司吗
  • 视同销售收入计入会计利润吗
  • 人力资源外包服务费计入什么科目
  • 政府补助款提现流程
  • 税控减免税结转怎么操作
  • 从个人出开进的房租租赁发票可以抵扣几个点?
  • 小微企业2018年所得税税率
  • 税友软件费用
  • 收到认证费用计入什么科目
  • 员工借款收不回来账务处理
  • 固定资产折旧和累计折旧的区别
  • 资产处置收益属于利润表项目吗
  • 个体工商户交企业所得
  • 收到别的公司对公转账往来
  • 外账的结转成本是什么
  • w10关闭远程
  • windows10如何开启wifi
  • nmstt.exe - nmstt是什么进程 有什么用
  • php面向对象的三大特征
  • php中session和cookie
  • uniapp route
  • 待处理流动资产净损失在资产负债表中
  • php最安全的登录功能
  • vue created mounted
  • 自然人税收管理系统扣缴客户端app
  • 通过云服务器租号安全吗
  • 建造师与建筑师的区别详解
  • java基础面试题选择题
  • ubuntu busier
  • 文件上传模板怎么弄
  • 将外购商品用于个人消费
  • 视同销售到底如何纳税调整?
  • 应交税费借方属于什么科目
  • html前端开发教程
  • 小规模纳税人免增值税的账务处理
  • 又是客户又是供应商的舞弊行为
  • 现金流量表的本期数是本月数还是本年数
  • sql server安装出现值不能为null
  • 外贸企业 生产企业
  • 劳动报酬收入包含什么
  • percona-toolkit之pt-kill 杀掉mysql查询或连接的方法
  • 应收账款在贷方为负数表示什么
  • 取得虚开普票如何处置
  • 一次性医疗补助金怎么计算
  • 红冲去年的成本怎么做账
  • 支付单位结算卡费用计入什么科目
  • 季节性停工计入成本吗
  • 弃置费用摊销为什么在贷方增加
  • 营业费用和营业支出
  • 一般纳税人加工费怎么做账
  • 暂估入账后续处理
  • mysql in的子查询
  • win2008r2安装ftp
  • linux的压缩包
  • linux使用范围
  • demon.exe是什么
  • win8系统安装的软件在哪里
  • js怎么使用
  • 使用 jQuery.ajax 上传带文件的表单遇到的问题
  • python爬虫系统
  • js实现的简洁二次函数
  • bootstrap js插件
  • 社保所属期起和所属期止是什么意思区别
  • 建筑服务纳税人有哪些
  • 社保扣费为什么忽高忽低
  • 金三系统企业所得税如何变更所得税缴纳方式?
  • 沙宣发型适合什么年龄女性
  • 河北税务官方网页
  • 2021房屋退税流程怎么操作
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设