【web 开发基础】PHP 使用自定义函数库 (39)
前言
函数自定义库并不是定义函数的 PHP 语法,而是编程时的一种设计模式,或者说是编码技巧。函数是结构化程序设计的模块,是实现代码可重用性的核心。为了更好的组织代码,是自定义的函数可以在同一个项目的多个文件中使用,通常将多个自定义的函数组织到同一个文件或多个文件中。这些收集函数定义的文件就是创建的 PHP 函数库。如果在 PHP 脚本中想使用这些文件中定义的函数,就需要使用 include()、include_once()、require()、require_once()中的其中一个函数,将函数库中文件载入或引入脚本程序中。
require()语句的性能与 include()类似,都是包括并运行指定文件。不同之处在于,对 include()语句来说,在执行文件时每次都要进行读取和评估;而对于 require()语句来说,文件只处理一次(实际上,文件内容替换了 require()语句)。这就意味着如果可能执行多次的代码,则使用 require()效率比较高。另外,如果每次执行代码时读取不同的文件,或者通过一组文件迭代的循环,就使用 include()语句。
include()和 require()的使用及区别
require() 语句的使用方法如 require(" myfile.php ") , 这条语句通常放在 php 脚本程序的最前面。PHP 程序在执行前就会先读入 require()语句所引入的文件,使它 变成 PHP 脚本文件的一部分。include()语句的使用方法和 require() 语句是一样的,如 include(" myfile.php ")。而这条语句一般放在流程控制的处理的代码区段中。php 脚本文件在读到 include() 语句,才会将它包含的文件读进来。采用这种方式,可以把程序执行时的流程简单化。
我们通过代码简单了解一下:
上面的文件我们都没有定义,只是演示而已,执行结果如下:
接着我们把第一行注释掉
执行结果如下:
总结
这两个引入方法的用途是完全一样的,不一定非得哪个放在最前面哪个放在中间。他们最根本的区别在于错误处理的方式不一样。从上面的例子的运行结果对比可以看出:
require() :如果文件不存在,会报出一个 fatal error.脚本停止执行
include() : 如果文件不存在,会给出一个 warning,但脚本会继续执行
上面的例子中,在一个脚本文件中使用了 require()和 include()两种语句,include()语句放在流程控制的出路区段中使用,当 PHP 脚本文件读到它时,才将它包含的文件读进来。而在文件的开头和结尾处使用 require()语句,在这个脚本执行前,就会先读入它所引入的文件,使它包含的文件成为 PHP 脚本文件的一部分。
require()和 include()语句是语言结构,不是真正的函数,可以像 PHP 中其他的语言结构一样,比如:echo()可以使用 echo("123")形式,也可以使用 echo “123”形式输出字符串 123。require()和 include()语句也可以不加圆括号而直接加参数,再比如 include()语句可以使用 include("file.php")包含 file.php 文件,也可以使用 include "file.php";的形式。
include_once()和 require_once()语句也是在脚本执行期间包括并运行指定文件。此行为和 include()及 require()语句类似,使用方法也一样。唯一区别是如果是该文件中的代码已经被包括了,则不会再次包括。这两条语句应该用于在脚本执行区间,同一个文件有可能被包括超过一次的情况下,确保它只被包括一次,以避免函数重定义以及变量赋值等问题。
版权声明: 本文为 InfoQ 作者【迷彩】的原创文章。
原文链接:【http://xie.infoq.cn/article/d6d025ba57fcde33ce37886a3】。文章转载请联系作者。
评论