前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >PHP 中使用 (int) 进行类型转换时要比 intval 函数快6倍

PHP 中使用 (int) 进行类型转换时要比 intval 函数快6倍

作者头像
Denis
发布2023-04-14 10:04:25
1.2K0
发布2023-04-14 10:04:25
举报
文章被收录于专栏:WordPress果酱

在 PHP 中,进行类型转换一般可以使用 intval(var) 函数,或者使用强制类型转换函数 (int) var 使用上这两个没有什么区别,唯一比较大的区别是 intval(var) 函数支持第二个参数 base 转化所使用的进制,但是一般使用过程中,这个参数用的很少。

但是在性能上,这两种方法有非常大的差别,经过测试,在 PHP 中使用 (int)var 进行类型转换时要比使用函数 intval( var) 大概快 3-6.5倍,下面是一个简单的测试:

输入

(int)$val

intval($val)

比较

#0

42

0.068180

0.448819

658%

#1

-42

0.067972

0.448907

660%

#2

4.2

0.072348

0.450288

622%

#3

'42'

0.087305

0.469350

537%

#4

'+42'

0.087590

0.471153

537%

#5

'-42'

0.089154

0.469826

526%

#6

34

0.068234

0.451035

661%

#7

'042'

0.089344

0.470391

526%

#8

0x1A

0.072989

0.451909

619%

#9

'1e10'

0.088196

0.469347

532%

#10

26

0.068378

0.449884

657%

#11

42000000

0.068770

0.449416

653%

#12

2147483647

0.068927

0.448028

650%

#13

2147483648

0.072599

0.450618

620%

#14

4.2E+20

0.086305

0.467347

541%

#15

'420000000000000000000'

0.102120

0.484245

474%

#16

array()

0.092310

0.472185

511%

#17

array('foo','bar')

0.112644

0.494482

438%

PHP 的 intval(), strval(), floatval()boolval() 来自 PHP 4 年代的函数,PHP 5 之后的版本有了强制类型转换函数(比如(int) $var),经过上面测试,这些强制类型转换函数速度要快6倍。

所以 WordPress 5.6 把代码中的所有相关使用函数进行类型转换的代码都改成强制类型转换,据他们说一共改了 250 多个地方,哈哈。那我也改一下,WPJAM Basic 5.2 为了进一步提速,也会把所有使用到的类型转换函数,转换成强制类型转换。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
腾讯云服务器利旧
云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档