位置: 编程技术 - 正文

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

  • 讲课费怎么代扣代缴个人所得税
  • 销售额是含税价还是不含税价
  • 发票系统口令锁定
  • 先付款后签合同 法律效力
  • 教育培训行业是干什么的
  • 金蝶k3如何设置凭证保存自动新增
  • 民营医院的财务管理制度
  • 汇算清缴忘记申报了怎么办
  • 自己申报个人所得税需要补缴,必须自己申报自己补缴吗
  • 如何确定商品交易价格?
  • 土地转让缴纳增值税政策
  • 收到政府中小企业发票
  • 差额内部收益率大于基准收益率
  • 晚会主持人化妆
  • 水泥厂水泥增值税率是多少?
  • 免税和不征税货一样吗
  • 机动车发票如何抵扣进项税
  • 买金税盘怎么做账,抵扣的时候
  • 开票码是什么意思
  • 500万以下固定资产最新政策
  • 固定资产清理税金如何处理
  • 贸易企业出口退税的操作明细流程
  • 多交的公积金怎么退回来
  • 经营费用包括哪些科目明细
  • 专项储备属于什么科目代码
  • 固定资产折旧的影响因素
  • 教你如何在白桦树上采集桦树汁
  • 三代税款手续费支付比例
  • pruttct.exe - pruttct是什么进程 有什么用
  • 单位中秋节福利发放物品
  • macos字体
  • twig教程
  • HTML怎么设置文本框
  • 建筑行业施工规范有哪些
  • php使用函数限制字符串长度和格式
  • 差旅费用按业务分为
  • 处置抵债资产的账务处理
  • 成本核算的会计处理
  • 保险支票托收
  • 房地产小规模纳税人预缴税款如何填申报表
  • 归还股东借款要交税吗
  • 控股股东变更,业务有望质变的公司
  • SQLServer2005与SQLServer2008数据库同步图文教程
  • 阶段性减免社保费政策期限延长
  • 住宿发票丢失
  • 员工意外险税前扣除比例
  • 公司汽车维修
  • 调整账户有哪几类
  • 预付物业费会计分录
  • 收到汇算清缴后怎么做账
  • mysql8.0免安装
  • mysql 从库
  • centos7 pptp搭建
  • 怎么修复xp系统
  • ubuntu kde gnome
  • 激活窗口的菜单的快捷键
  • 要使用windows
  • win8.1原版系统安装教程
  • 无人值守工厂
  • win8.1不能关机
  • Linux 后台执行程序如何操作?
  • linux tar -czvf
  • 用VMware安装阿里linux
  • virtualbox开启虚拟化
  • 深入剖析kubernetes pdf
  • linux怎么调用python
  • [置顶]津鱼.我爱你
  • JS、jQuery中select的用法详解
  • javascript 二维码
  • nodejs全局异常监听
  • linux做ftp
  • python爬虫介绍
  • 谈一谈如何抓好党建工作
  • 电子原理图实例讲解
  • jquery分页插件的使用
  • python的基础代码
  • 小规模企业所得税怎么算
  • 加油的电子发票在手机哪里
  • 陕西省国家税务局总局官网
  • 河北云办税厅2.0登录
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设