前言
函数自定义库并不是定义函数的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() 语句,才会将它包含的文件读进来。采用这种方式,可以把程序执行时的流程简单化。
我们通过代码简单了解一下:
<?php
require "config.php"; //使用 require 语句包含执行 config.php文件
include "configs.php"; //使用 require 语句包含执行 config.php文件
if($condition){
include "myfiles.txt"; //使用include 语句包含并执行 myfiles.txt文件
}else{
include ("others.php"); // 使用include 语句包含并执行 others.php文件
}
require("somefiles.txt"); // 使用require 语句包含执行 somefiles.php文件
?>
上面的文件我们都没有定义,只是演示而已,执行结果如下:
接着我们把第一行注释掉
<?php
//require "config.php"; //使用 require 语句包含执行 config.php文件
include "configs.php"; //使用 require 语句包含执行 config.php文件
if($condition){
include "myfiles.txt"; //使用include 语句包含并执行 myfiles.txt文件
}else{
include ("others.php"); // 使用include 语句包含并执行 others.php文件
}
require("somefiles.txt"); // 使用require 语句包含执行 somefiles.php文件
?>
执行结果如下:
总结
这两个引入方法的用途是完全一样的,不一定非得哪个放在最前面哪个放在中间。他们最根本的区别在于错误处理的方式不一样。从上面的例子的运行结果对比可以看出:
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()语句类似,使用方法也一样。唯一区别是如果是该文件中的代码已经被包括了,则不会再次包括。这两条语句应该用于在脚本执行区间,同一个文件有可能被包括超过一次的情况下,确保它只被包括一次,以避免函数重定义以及变量赋值等问题。
【转自:东台网站设计 http://www.1234xp.com/dongtai.html 提供,感恩】