php避免用require_once的方法
PHP #require_once #autoload #class_exists2012-04-30 14:40
在php中很多人习惯用require_once/include_once,这个当然是方便简单。但据测试数据来看,require_once比require慢3-4倍,所以在php开发中,应该尽量使用require/include。
下面总结下避免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。
<?php if(!defined('_MYCLASS_')) return; define('_MYCLASS_', 1); class MyClass { ... } ?>测试了一下,defined的性能也不是太好…
require前检查
用class_exists或者function_exists检查一下,确认没有载入过再出手,至少比require_once能快上3倍。php4也可以用上。
class_exists('myClass') or require('/path/to/myClass.class.php');
相关文章
- PHP简单验证码类 2012/04/30
- PHP扩展库介绍 2012/04/30
- php函数iconv与mb_convert_encoding的区别 2012/04/30
- PHP判断远程文件是否存在函数 2012/04/30
- PHP压缩HTML/JS代码 2012/04/30
- php在iis下自动输出Content-Length的方法 2012/04/30
- Linux下给php安装memcache扩展 2012/04/29
- PHP防止伪造跨站请求的小招式 2012/04/28
- php 性能测试工具 xhprof 使用教程 2012/04/28
- 通过刷新PHP缓冲区来加速网站 2012/04/28