博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
php 函数 总结及建议
阅读量:6073 次
发布时间:2019-06-20

本文共 727 字,大约阅读时间需要 2 分钟。

  hot3.png

通过对函数实现的原理分析和性能测试,我们总结出以下一些结论:

  1. PHP的函数调用开销相对较大。
  2. 函数相关信息保存在一个大的hash_table中,每次调用时通过函数名在hash表中查找,因此函数名长度对性能也有一定影响。
  3. 函数返回引用没有实际意义。
  4. 内置php函数性能比用户函数高很多,尤其对于字符串类操作。
  5. 类方法、普通函数、静态方法效率几乎相同,没有太大差异。
  6. 除去空函数调用的影响,内置函数和同样功能的C函数性能基本差不多。
  7. 所有的参数传递都是采用引用计数的浅拷贝,代价很小。
  8. 函数个数对性能影响几乎可以忽略。

因此,对于php函数的使用,有如下一些建议:

  1. 一个功能可以用内置函数完成,尽量使用它而不是自己编写php函数。
  2. 如果某个功能对性能要求很高,可以考虑用扩展来实现。
  3. PHP函数调用开销较大,因此不要过分封装。有些功能,如果需要调用的次数很多本身又只用1、2行代码就行实现的,建议就不要封装调用了。
  4. 不要过分迷恋各种设计模式,如上一条描述,过分的封装会带来性能的下降。需要考虑两者的权衡。PHP有自己的特点,切不可东施效颦,过分效仿java的模式。
  5. 函数不宜嵌套过深,递归使用要谨慎。
  6. 伪函数性能很高,同等功能实现下优先考虑。比如用isset代替array_key_exists。
  7. 函数返回引用没有太大意义,也起不到实际作用,建议不予考虑。
  8. 类成员方法效率不比普通函数低,因此不用担心性能损耗。建议多考虑静态方法,可读性及安全性都更好。
  9. 如不是特殊需要,参数传递都建议使用传值而不是传引用。当然,如果参数是很大的数组且需要修改时可以考虑引用传递。

转载于:https://my.oschina.net/clearchen/blog/74219

你可能感兴趣的文章
MISP6: 细化迭代4:实现退货用例
查看>>
项目SOA化
查看>>
小烦躁
查看>>
韩都衣舍连个面试的机会也不给
查看>>
ubuntu下安装phpunit
查看>>
CCNA WAN ACL&NAT
查看>>
Android:menu
查看>>
傻瓜式操作Nagios
查看>>
除去文件中显示的^M符号
查看>>
关于rman备份保留策略“恢复窗口”的一点理解
查看>>
Java 编程的动态性, 第四部分: 用 Javassist 进行类转换
查看>>
JavaScript—数组reduce()方法详解及高级技巧(18)
查看>>
【ThinkPHP3.2.3】学习ThinkPHP笔记:搭建环境(1)
查看>>
MySQL数据库之多条件查询索引实现(项目中经常用到)
查看>>
layer表单元素 三级联动 省市县选择框动态渲染问题解决
查看>>
php Notice: Undefined index: lable in 异常
查看>>
find命令的练习
查看>>
Spring核心——Profile管理环境
查看>>
这是一个鲜为人知,却身怀绝技的神秘工具——幻灯片母版
查看>>
python开发的 dht网络爬虫
查看>>