• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

(转贴分享)php 函数 小结及建议

php 搞代码 4年前 (2022-01-23) 23次浏览 已收录 0个评论

(转贴分享)php 函数 总结及建议
通过对函数实现的原理分析和性能测试,我们总结出以下一些结论:

PHP的函数调用开销相对较大。
函数相关信息保存在本文来源[email protected]搞@^&代*@码)网9搞代gaodaima码一个大的hash_table中,每次调用时通过函数名在hash表中查找,因此函数名长度对性能也有一定影响。
函数返回引用没有实际意义。
内置php函数性能比用户函数高很多,尤其对于字符串类操作。
类方法、普通函数、静态方法效率几乎相同,没有太大差异。
除去空函数调用的影响,内置函数和同样功能的C函数性能基本差不多。
所有的参数传递都是采用引用计数的浅拷贝,代价很小。
函数个数对性能影响几乎可以忽略。
因此,对于php函数的使用,有如下一些建议:

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

——解决方案——————–
作者有些想当然了
hash值是数不是串,在hash表中他表示项相对表头的偏移。因此查表效率很高。函数名在预编译期间已经转换成了hash值,其实所有的php扩展函数都在这张表里

不说了,从作者的描述可的出:
不要使用框架
不要自己书写类
不要自己定义函数
如果所需功能php没有提供,那么请放弃php

——解决方案——————–
没有最优的东西。尽量避免,就是最优的。


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:(转贴分享)php 函数 小结及建议
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址