位置: 编程技术 - 正文

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

  • 研发费用加计扣除75%还是100%
  • 未核销fyc
  • 个人独资企业可以核定征收吗
  • 什么是非限制
  • 计提的成本次月怎么处理
  • 租金是含税的吗
  • 银行手续费进项税怎么入账
  • 自然人税务系统扣缴客户端怎么申报
  • 个人股权转让未分配利润如何处理
  • 工业企业所得税优惠政策
  • 税务局每年都会大数据抽查吗
  • 物业管理的差额怎么算
  • 茶具可以作为固定资产吗
  • 计提税金和缴纳税金的会计分录
  • 个人独资企业是什么意思
  • 委托收款有哪些
  • 不动产进项抵扣新政策2022
  • 主营业务税金及附加包括什么
  • 购货申请书
  • 商贸流通企业的构成
  • 穿越火线下载安装
  • 如何在vue项目中导入外部的包
  • 为什么申报个人所得税还要补税
  • 施工费增值税专用发票税率
  • 把d盘的空间分配到e盘
  • 企业租房租金怎么核算
  • pavsrv50.exe - pavsrv50进程管理信息
  • php两个数组相加结果
  • 若依框架是什么框架
  • php写一个简单的单例模式
  • 汽车定额发票怎么填写
  • 银行日记账本月没有发生业务
  • thinkphp 快速入门
  • php有哪些
  • 直连路由,静态路由
  • opencv1.0
  • 消费税购置税价格一样
  • 软件开发属于技术合同吗
  • php5.6漏洞
  • 如何在织梦中设置图片加文字
  • php中isset函数作用
  • mongodb $sum
  • 公司收取的门禁费用
  • 劳动仲裁赔偿款会计分录
  • 春节法定假加班费政策依据
  • 母公司将子公司股权无偿转让给子公司
  • 无形资产当月减少当月计提吗
  • 税控盘减免税款分录
  • 提前报废固定资产会导致账面价值减少吗
  • 固定资产抵扣进项税额最新规定
  • 主营业务成本借贷方向增减
  • 购置办公大楼,会计处理
  • 发票保管应由谁保管
  • 应交消费税等于
  • 消防公司会计分录
  • 其他应收款待抵扣借方是什么意思啊
  • 现金日记账的日期栏是指记账凭证的日期
  • mysql中的where子句
  • vhd 打开
  • 安装win8系统需要什么条件
  • 2008r2数据库备份
  • win2玩魔兽世界
  • ubuntu20.04亮度调节
  • 怎么用苹果电脑打印照片
  • centos7安装MySQL8.0
  • linux用户相关命令
  • opengl基础知识
  • ftp上传网站的步骤
  • java的gui框架
  • flask开发实例
  • python如何读取字符串的一个一个字符
  • js输出100以内能被5整除的数
  • javascript教程chm
  • android开发框架
  • js在div中添加div
  • 上海市浦东新区公租房
  • 进货没有发票怎么报税
  • 科级干部试用期一年转正流程
  • 积极配合税务局工作
  • 河北省餐饮经营单位安全生产规定
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设