常用的避免require/include的方法
1、使用魔术函数__autoload
php5 可以使用__autoload来避免require,用的好的话,代码里头甚至看不到几个require,真是不错的东西。测试结果表明,使用 __autoload之后比 require_once然后再实例化大概要快3倍左右。这个函数最大的用处就是在实例化一个未明确定义的类时去寻找相应的文件并载入(是动态加载 哦~)。
2 | function __autoload( $class_name ) { |
3 | require_once $class_name . '.php' ; |
6 | $obj2 = new MyClass2(); |
ps:为了减少与其它第三方类库产生冲突的可能,建议不要直接使用__autoload,而是使用spl_autoload_register(PHP 5 >= 5.1.0RC1)。ZEND框架用的就是spl_autoload_register
2、require前检查
用class_exists或者function_exists检查一下,确认没有载入过再出手,至少比require_once能快上3倍。php4也可以用上。
class_exists('MyClass') or requir('/path/MyClass.class.php');
还有其他的方法来解决这个问题,但我没使用过。如果是用PHP5之后的版本,强烈推荐第一种方式。