三、文件是我们的朋友 jC%35bi
6 u-$
无论你在开发的网站规模的大小,都应该意识到代码重用的重要性,无论这些代码是HTML、还是PHP代码。例如,你必须至少每年改变一次包含版权信息的页脚,如果你的网站含有1000个页面,每年修改一次也是个很烦人的事儿。 <&5m N
i iX\it$s
在PHP中,至少有几个函数可以帮助你实现代码重用的目的,所使用的函数取决于你所重用的代码,主要的函数有: 6Wpxp\
yB,{#nM>8
* include() and include_once() pWs\.::B
* require() and require_once() 22`oFXb'
include()函数包含并对给定的文件进行计算,例如: 'qL5$ zG
include('/home/me/myfile'); 2W^B{ZS;
?;|@T ty%
在include文件中的任何代码都在include()出现的代码范围内执行,你可以通过联合使用include()和fopen()在自己的服务器上包含静态文件,在另一台服务器上包含目标文件。 )Hbb&F
}*
QO]_U?
include_once()的功能与include()相同,二者之间的区别在于它会检查一个文件中的代码是否已经包含在现有的脚本中,如果代码已经存在,则不会再次包含它。 :O $@shV
'>j<yaD'
require()函数用给定文件的内容取代它本身,这一代替过程发生在PHP引擎编译代码期间,而不是在执行期间进行,它不象include()那样会首先进行计算。require()函数更多地用在静态元素中,而include()更多地用于动态元素中。与include_once()类似的是,require_once()将首先检查是否已经插入给定的代码,如果代码已经存在,就不再插入了。 kE/`n],1U
TUh&d5a9H
为也了解其内容,在版权信息、静态文字和其他不包含变量的元素或者依赖其他正在执行的脚本的元素中我更趋向于使用require函数。例如: hv*>%p
<B6[i*&
QyPg
|#T2>
CjZZm^O
`SV"ElRV
[a lot of content] pDu{e>S|:
// insert copyright 5|ic3
require('/home/me/mycopyright'); R7K!A
%
?> lT.zNhz:d9
3bC+Mco
1Cm~X$S.
4j>fI)FUW
另一方面,我经常在文件的开始使用include()来控制许多的函数: EYL]TeS
57~Uqt
//得到函数库 WwuZ(>|
include('/home/me/myfunctions'); <FY&h#
// do PHP things with my functions ?> m0|K#^
jM~Bu.7 i6
@mf({Q>
V/PAi.GZ
[a lot of content] @F>F#-2
bd!U)b(}OV
z}ElpT[(;
ak;6z]f8[
下一个问题就该是“include和require文件在哪里?”,对这个问题简单的回答是,“系统中的任意地方。”如果你的代码中包含有带有用户名和口令的数据库连接,你肯定不会将它们都放在文档根目录中向所有的人都开放。 <l$P&jSF3
&