位置: 编程技术 - 正文

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

  • 发现之前的差旅费补助多报了一天该怎么调整
  • 材料出入库制度
  • 劳务派遣公司如果倒闭了怎么办
  • 个税申报本期收入包括社保吗
  • 经济合同
  • 去年暂估的库存商品今年到了发票怎么做会计分录
  • 公司房产出租租金如何开票?
  • 转让购入的设备税率
  • 增值税抵扣凭证包括桥闸通行费发票
  • 简易征收一般纳税人可以收专票吗
  • 房地产开发企业预收款预缴增值税
  • 先入库发票未到分录
  • 哪些工资薪酬可以进行税前扣除?
  • 建安企业增值税税率是多少
  • boss直聘收费怎么这么贵
  • 其他应付款如何做账
  • 小规模纳税人进项税额怎么算
  • 鸿蒙系统获取电脑文件
  • 找发票抵工资
  • 房租增值税专用发票税率
  • 无形资产可以占多少比例
  • 什么是跨区域涉税业务
  • 传递优化的作用
  • 对公转账存款
  • 公司不运营了需要注销吗
  • 承租人对经营租赁的会计分录
  • 软件能否成为无线网
  • 个体工商户加盟咖啡店
  • react reducer详解
  • Vue Router4 ,prams 传参失效和报错问题
  • 【简陋Web应用2】人脸检测——基于Flask和PaddleHub
  • jquery设置不可用
  • 无形资产转让账务怎么做
  • 季报弥补亏损,财报怎么填
  • 增值税进项税加计抵减
  • 利息收入交所得税吗
  • 供热企业税收优惠
  • 关于实收资本的表述中,不正确的是
  • 个企年报怎么申报
  • php static function
  • js调用自己
  • mysql备份原理
  • 织梦适合做什么网站
  • 未达起征点销售额
  • 保理公司会计核算讲解
  • 社保缴费基数应该怎么算
  • 实收资本减少的要交什么税
  • 待处理财产损溢属于什么类科目?
  • 业务招待费可以结转下年抵扣吗
  • 网吧是个人独资企业还是个体工商户
  • 小规模纳税人进项可以抵扣吗
  • 租赁办公楼
  • 销售成本存在的问题
  • java调用jni
  • 阿里云安装apache
  • xp系统的设置在哪里
  • Mac怎么查看WiFi使用量
  • win7 64位系统只有搜狗浏览器可以打开网页其他浏览器打不开的故障原因及解决方法
  • 鲁大师安装失败怎么回事
  • win10系统如何清洗打印机喷头
  • mac上safari
  • linux 硬盘满了
  • pphelper是什么文件
  • win8虚拟内存怎么设置最好
  • 在linux中使用什么可以执行shell脚本
  • win7系统无法共享win10系统打印机
  • linux下VSFTP 530 Permission denied错误的解决办法
  • js中的函数
  • 通过手机号怎么查对方的位置
  • android开发mvc mvp mvvm
  • android如何运行项目
  • css选择器怎么写
  • windows安装node
  • 禁用javascript后果
  • java script怎么学
  • 国家税务局39号公告退税
  • 如何查询车辆购买信息
  • 税务注销相关文件
  • 2023浙江高考首考状元
  • 税务申报按季度申报
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设