包含文件你用哪一种?
时间:2008-06-13
来源:互联网
简要说明一下:
1、require:无条件包含,也就是在 if(0) { require('file.php'); } 情况下也会把文件包含进来。
2、require_once:同上,但已包含过一次的文件,不再包含进来。
3、include:有条件包含,if(0) { include('file.php'); } 情况下不包含文件进来。但同一文件包含两次的情况下均包含进来。容易引起类同名错误。
4、include_once:同上,同一个文件多次包含及包含一次。
5、set_include_path:设定包含路径,一次搞定多个文件的包含。需配合get_include_path和上面四个函数来使用。依在下愚见,包含文件用这个应该是最高效的。
后记:有资料显示PHP对于include和require的机制已作调整,PHP5的require也不再是无条件包含,所以此投票发起者显然考虑不足。有误导之嫌。这里七月十五向大家致歉,让大家糊涂了。
推荐大家在包含文件时使用set_include_path结合require_once来完成,当然效率还是值得研究了。
PHP中同一功能不同函数实现的情况很多,考虑到兼容性、效率等因素,大家在实际应用时要合理取舍。
作者: 七月十五 发布时间: 2008-06-13
这叫什么意思??? 我如果在外转引入一次...再判断的时候?? 就不管是真是假??都会引入???
作者: 冯.于安 发布时间: 2008-06-13
set_include_path 好像不能在安全模式下用
偶用require
作者: 飞翔de希望 发布时间: 2008-06-13
作者: linvo 发布时间: 2008-06-14
作者: 125231896 发布时间: 2008-06-14
include_once的原理是:如果没有被包含过则包含。
include的原理是:不管之前有没有被包含,直接包含进来。
这就是所谓的效率,因为once有一个if判断。而对我们来说同样的文件在同一个会话中包含了两次或更多是不可容忍的。
set_include_path方法严格来说不能说是包含文件,而是为包含文件指名了路径,免去判断路径之苦。
实际使用时,我个人认为应该用include_once。
以上一家之言,姑妄听之
作者: 七月十五 发布时间: 2008-06-14
例如有有一个 include文件夹
下面有1.php 2.php 3.php
我在index.php 需要引用这3个文件
之前我都是用 require_once
能说说 如果用set_include_path
怎么做 效果才能和之前的一样吗……
作者: szgekko 发布时间: 2008-06-14
一直用require 也推荐用1. require
作者: CrossMaya 发布时间: 2008-06-14
LZ的简要说明,已经说出了这些东西该怎么用了...综合着用.要不然为什么要有这么多让你选择
[ 本帖最后由 mayongzhan 于 2008-6-14 18:09 编辑 ]
作者: mayongzhan 发布时间: 2008-06-14
作者: horizon 发布时间: 2008-06-14
//ZF路径设定
set_include_path(get_include_path().PATH_SEPARATOR
.'.'.PATH_SEPARATOR
.'../library'.PATH_SEPARATOR
.'../application/models'); //包含路径设定
include 'Zend/Loader.php'; //加载loader
这样设定后在当前目录(.)、../library、../application/models目录下的脚本,只要直接include_once ''文件名" 就可以了。
比如上例的Zend/Loader.php脚本就在../library下
作者: 七月十五 发布时间: 2008-06-15
作者: luckhellen 发布时间: 2008-06-15
include很少用
作者: sara 发布时间: 2008-07-31
作者: fhjr999 发布时间: 2008-07-31
3、include:有条件包含,if(0) { include('file.php'); } 情况下不包含文件进来。但同一文件包含两次的情况下均包含进来。容易引起类同名错误。
这叫什么意思??? 我如果在外转引入一次...再判断的时候?? 就不 ...
用require会这样的,虽然这个地方根本执行不到,但是还是会包含进来,所以会浪费更多的资源。
作者: fhjr999 发布时间: 2008-07-31
作者: sara 发布时间: 2008-07-31
include_once
作者: phplz 发布时间: 2008-07-31
1. require 和 include 运行速度是一样的
2. require_once 和 include_once 运行速度是一样的
前组比后组速度要快,非必要时候后组不要使用
作者: skey 发布时间: 2008-08-01
作者: skey 发布时间: 2008-08-01
作者: hklcf 发布时间: 2008-08-01
echo file_get_contents($file_name);
作者: cers 发布时间: 2008-08-01
注意: 在 PHP 4.0.2 之前适用以下规则:require() 总是会尝试读取目标文件,即使它所在的行根本就不会执行。条件语句不会影响 require()。不过如果 require() 所在的行没有执行,则目标文件中的代码也不会执行。同样,循环结构也不影响 require() 的行为。尽管目标文件中包含的代码仍然是循环的主体,但 require() 本身只会运行一次。
不是说在 PHP 4.0.2 之前吗 ?
下面的才是根本的区别吧
require() 和 include() 除了怎样处理失败之外在各方面都完全一样。include() 产生一个警告而 require() 则导致一个致命错误。换句话说,如果想在丢失文件时停止处理页面,那就别犹豫了,用 require() 吧。include() 就不是这样,脚本会继续运行。同时也要确认设置了合适的include_path。
[ 本帖最后由 mosee 于 2008-8-1 14:07 编辑 ]
作者: mosee 发布时间: 2008-08-01
作者: 汉化天空 发布时间: 2008-08-01
作者: lmhllr 发布时间: 2008-08-01
作者: leric 发布时间: 2008-08-05
不知道php为啥用这么多的包含方式,直接include不就得了
作者: fly1983 发布时间: 2008-08-05
看了楼上N位的发言……
好感慨= =|||
作者: Fluorine 发布时间: 2008-08-05
作者: fireseno 发布时间: 2008-12-05
[ 本帖最后由 Duron 于 2008-12-5 20:32 编辑 ]
作者: Duron 发布时间: 2008-12-05
作者: 彪形大汉 发布时间: 2008-12-05
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28