如何避免使用php的require

  我们知道,在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');

时间: 2024-09-17 04:30:00

如何避免使用php的require的相关文章

torch7中require &amp;amp;#39;graphicsmagick&amp;amp;#39;报错

问题描述 torch7中require 'graphicsmagick'报错 在torch7中用luarocks install graphicsmagick ,安装成功.但是在require 'graphicsmagick'时报错,报错如下: ...ing/torch/install/share/lua/5.1/graphicsmagick/Image.lua:304: libGraphicsMagickWand.so: cannot open shared object file: No s

PHP的包含文件函数require和include路径总结

  1 绝对路径.相对路径和未确定路径 相对路径 相对路径指以.开头的路径,例如 ./a/a.php (相对当前目录) ../common.inc.php (相对上级目录), 绝对路径 绝对路径是以 / 开头或者windows下的 C:/ 类似的盘符开头的路径,全路径不用任何参考路径就可以唯一确定文件的最终地址. 例如 /apache/wwwroot/site/a/a.php c:/wwwroot/site/a/a.php 未确定路径 凡是不以 . 或者 / 开头.也不是windows下 盘符:

break|require|return 等关键字的用法

  循环的终止: Break 跳出整个循环,剩余的循环体,都不需要再执行. Continue: 跳出当前循环,只结束当前循环体,而其余的循环体继续执行.   我们流程控制语句是可以嵌套的. 可能出现 循环内有分支  分支内有循环 循环内有循环. 当出现循环内有循环时,我们称之为多重循环! 例如 删除乘法表:   如果是在多重循环内,写break或者continue,则控制的是直接包含break或者continue的循环.   那如果我们需要同时 结束 多重循环 ,应该 在 break或者cont

Javascript模块化编程(三):require.js的用法

今天介绍如何将它们用于实战. 我采用的是一个非常流行的库require.js. 一.为什么要用require.js? 最早的时候,所有Javascript代码都写在一个文件里面,只要加载这一个文件就够了.后来,代码越来越多,一个文件不够了,必须分成多个文件,依次加载.下面的网页代码,相信很多人都见过. <script src="1.js"></script> <script src="2.js"></script> &

PHP中include与require的用法区别

在PHP变成中,include()与require()的功能相同,include(include_once) 与 require(require_once)都是把把包含的文件代码读入到指定位置来,但是二者再用法上有区别:(include()是有条件包含函数,而require()则是无条件包含函数)   1, 使用方式不同   (1) require 的使用方法如 require("requireFile.php"); .这个函式通常放在 PHP 程式的最前面,PHP 程式在执行前,就会

在PHP中include和require到底有什么区别呢?看这里的例子就知道了

include|区别 include.php3的运行结果是: 这是inc1.inc文件中的一个变量的值! 这是inc2.inc文件中的一个变量的值! inc1.inc文件中的$int变量值为1! require.php3的运行结果是: 这是inc1.inc文件中的一个变量的值! inc1.inc文件中的$int变量值为2! 你可以看到在require.php3中$int变为了2,也就是说inc1.inc中的语句被执行了2次,这样看来在循环中require语句只被解释一次,而且会把require语

require()和include()的区别-摘自网猴

include|区别 在PHP中使用头文件,会涉及两个函数:include()和require().这两个函数差别很小,却很重要,所以我们要认真研究一下.require()函数工作方式与XSSI相类似:不管在程序的哪个部分使用了这个函数,只有程序一开始运行,头文件的内容就被作为程序本身的一部分来处理.因此,如果您在一个条件判定语句中使用了require()函数,那么即使这个条件即使不为真,头文件也会被包含进来. 而include()函数只是在执行到这一条语句时才会把头文件内容包含进来.如果程序没

require和include经典一例抛析

include     在php中,include和require的作用比较容易混淆.下面我以一个经典例子来深刻说明它们的区别.    当我们经常访问一个数据库时,可以把连库语句写成一个文件con_db.php3<?php    $dbh =  mysql_connect('localhost','','');     mysql_select_db('admreqs'); ?>在实际应用时,我们可以在程序中调用这个文件.如require("con_db.php3")或in

通过Include和Require函数实现代码重用

include|函数 如果你做过各种大小的Web站点,一定会对重用代码段的重要性深有体会,不管是HTML还是PHP代码块.比如需要一年修改一次包含版权信息的页脚,而你有1000个Web页(就算是10个),手动操作则会让你痛苦不已. 通过PHP,你可以使用不同函数帮助你重用代码.具体用到的函数取决于你打算重用的内容. 主函数如下: * include() and include_once() * require() and require_once() include()函数包含给定的文件,并对其