PHP+MySQL Web应用开发教程
上QQ阅读APP看书,第一时间看更新

3.5 PHP文件间引用跳转

引用外部文件可以减少代码的重用性,是PHP编程的重要技巧。PHP提供了4个非常简单却很有用的包含函数(include()、require()、include_once()、require_once()),它们允许重新使用任何类型的代码。使用任意一个语句均可将一个文件载入PHP脚本中,从而减少代码的重用性,提高代码维护和更新的效率。

3.5.1 include()函数

include函数的语法格式:mixed include(string resource)。

include函数的功能:include语言结构将一个资源文件resource载入到当前PHP程序中。字符串参数resource是一个资源文件的文件名,该资源可以是本地Web服务器上的资源,如图片、HTML页面、PHP页面等,也可以是互联网上的资源。若找不到资源文件resource,include语言结构返回false;若找到资源文件resource,且资源文件resource没有返回值时,返回整数1,否则返回资源文件resource的返回值。

注:

1)使用include()函数载入文件时,如果被载入的文件中包含PHP语句,这些语句必须使用PHP开始和结束标记标识。

2)resouce资源是互联网上的某个资源时,需要将配置文件php.ini中的选项allow_url_include设置为on(allow_url_include=on),否则不能引用互联网资源。

【例3-11】程序文件位于同一个目录下的include语句的应用(即“include.php”和“main.php”位于同一个目录下)。

程序文件一:include.php

程序文件二:main.php

运行程序文件二的结果:

3.5.2 include()函数和require()函数的区别

应用require()函数来调用文件,其应用方法和include()函数类似,但还存在一定的区别,区别如下。

1)在使用require()函数调用文件时,如果被引用文件发生错误或不能找到被引用文件,引用文件将提示Warning信息及Fatal error致命错误信息然后终止程序运行。而include()函数在没有找到文件时则会输出警告,不会终止脚本的处理。

2)使用require()函数调用文件时,只要程序一执行,会立刻调用外部文件;而通过incldue()函数调用外部文件时,只有程序执行到该函数时,才会调用外部文件。

3.5.3 include_once()函数

随着程序资源规模的扩大,同一程序多次使用include()或者require()函数时有发生,而多次引用同一个资源也变得不可避免,但这可能导致文件的引用混乱问题。为了解决这类问题,PHP提供了include_once()函数和require_once()函数,确保同一个资源文件只能引用一次。

include_once()函数是include()函数的延伸,它的作用和incldue()函数几乎是相同的,唯一的区别在于include_once()函数会在导入文件前先检测该文件是否在该页面的其他部分被导入过,如果有则不会重复导入该文件。例如,要导入的文件中存在一些自定义函数,那么如果在同一个程序中重复导入这个文件,在第二次导入时便会发生错误,因为PHP不允许相同名称的函数被重复声明第二次。

include_once()函数的语法如下:void include_once(string filename);

filename参数是指定的完整路径文件名。

include_once()函数的功能:include_once()函数将一个资源文件resource载入到当前PHP程序中。若找不到资源文件resource,include_once()函数返回false。若找到资源文件resource,且该资源文件第一次载入,include_once()函数返回整数1;若找到资源文件resource,且该资源文件已经载入,include_once语句返回true。

【例3-12】应用include_once()函数引用并运行制定的外部文件top.php。

top.php文件代码如下:

注:include_once()函数和require_once()函数的区别:include_once函数在脚本执行期间调用外部文件发生错误时,产生一个警告,而require_once函数则导致一个致命的错误。