位置: 编程技术 - 正文

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

  • 计提本月个人所得税
  • 怎么修改金税盘登录密码
  • 人民大学税务专硕学费
  • 外贸企业进项税额
  • 接受投资专利技术科目
  • 非营利组织项目
  • 对外投资所得税计算公式
  • 仓储企业的成本有哪些
  • 什么是联营商品
  • 公司的车辆赠送公司
  • 高危职业人身意外险
  • 预提费用 会计准则
  • 一个公司帮另一个公司代付款
  • 存货跌价准备转回的条件有哪些
  • 增值税欠缴税会不会影响企业的信用
  • 应付企业负担的职工社会保险费
  • 收财务拨款的贷款合法吗
  • 固定资产发票未到怎么提折旧
  • 出口货物退税率查询
  • 正常的成本利润是多少
  • 增值税税控系统的税务处理
  • 报关单增值税税单收货人更改
  • 一般纳税人转出进项税额
  • 工厂出租厂房税率
  • 销售苗木属于什么行业
  • 专票红冲如何做账
  • 稳岗补贴需要缴税吗
  • 定额发票是啥
  • "明股实债“的税务风险,你真的清楚吗?
  • 劳务公司的主营业务成本是人工工资需要个人开发票吗?
  • 工资不用交税还用上报么
  • 工商注册需要提供什么
  • 中介收中介费后就不管了
  • 员工迟到扣工资的会计处理
  • 路由器和光猫上的无线网络名称一样吗
  • 对于目标文件系统文件过大无法删除
  • 工资及社保外包服务
  • safari浏览器怎么快进
  • PHP:mb_stripos()的用法_mbstring函数
  • 安保服务差额征税如何开票
  • 计提固定资产折旧怎么做会计科目
  • 外币交易犯法吗
  • 土地出让金的收费标准 60%
  • php生成csv文件
  • php imagettftext()函数
  • 再就业优惠怎么办理
  • 明细分类账户定义
  • php第三方支付
  • 个人独资企业用企业资金进行个人消费
  • 去年的预提费用今年进来了怎么入账
  • 签三方协议需要法人本人去吗
  • 税控系统维护费抵扣申报表怎么填
  • mysql服务器硬件配置
  • 给子公司注资怎么做账
  • 开的票比实际支付的多,账务怎么处理
  • 预付账款借贷方余额
  • 发票税额不全能抵扣吗
  • 软件续费应记什么科目
  • 临时账户名称是什么意思
  • 间接费用的分配公式
  • 产品成本核算有哪些方法
  • 产成品核算的内容
  • 新疆喀什地区身份证号码开头
  • linux信号机制的原理
  • fedora s9
  • windows7自带杀毒软件在哪里
  • win8系统如何安装惠普打印机
  • hke是什么意思
  • windows7怎么卸载
  • win7的收藏夹在哪里
  • windows7开机提示盗版
  • cocos2dx4.0教程
  • opengl 投影矩阵
  • android 实例
  • jquery实现
  • 基于JAVASCRIPT实现的可视化工具是
  • Unity的Attribute(特性)还算多吧
  • android Graphics(一):概述及基本几何图形绘制
  • 外省车险保单,有何不利的事
  • 什么是美国注册公司
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设