为了账号安全,请及时绑定邮箱和手机立即绑定

求大神,我该如何避免php的require_once?

求大神,我该如何避免php的require_once?

如何避免php的require_once
查看完整描述

4 回答

?
弑天下

TA贡献1818条经验 获得超7个赞

列一下俺常用的避免require/include的方法。 使用__autoload php5可以使用__autoload来避免require,用的好的话,代码里头甚至看不到几个require,实在是安逸啊。测试结果表明,使用__autoload之后的new Foo; 比require_once ‘foo.php’; new Foo; 大概要快3倍左右。 补充:为了避免autoload冲突,可以考虑使用spl_autoload_register(PHP 5 >= 5.1.2)来改变魔术函数__autoload的行为。 使用defined检测是否载入过 在代码开头使用defined检测是否定义过对应的常量,如果有的话,直接return。

查看完整回答
反对 回复 2019-10-26
?
杨__羊羊

TA贡献1943条经验 获得超7个赞

1. require_once()和include_once()是 PHP 4.0.1pl2 中新加入的.(为了兼容肯定不能把include()和require()一下子就抛弃)

2.require_once()和include_once()需要额外的去查看系统是否已经调用过这个文件. 因为它们在一个opcode缓存下的调用非常慢.所以效率上比其它两个函数要差一些.(据说php5.2.*以后效率问题被解决)

3.php说不定以后就会把include()实现成include_once()的"名字连接",象implode()和join(),exit()和die()一样...(这个是我瞎猜的....)

查看完整回答
反对 回复 2019-10-26
?
一只甜甜圈

TA贡献1836条经验 获得超5个赞

 在php中使用require_once/include_once虽然方便,但是代价昂贵,据测试数据来看,require_once比require慢3-4倍,所以在php开发中,我们应该尽量使用require/include。
  为了避免autoload冲突,可以考虑使用spl_autoload_register(PHP 5 >= 5.1.2)来改变魔术函数__autoload的行为。
  使用defined检测是否载入过
  在代码开头使用defined检测是否定义过对应的常量,如果有的话,直接return。

查看完整回答
反对 回复 2019-10-26
  • 4 回答
  • 0 关注
  • 1386 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信