写点什么

【web 开发基础】PHP 使用自定义函数库 (39)

作者:迷彩
  • 2022-11-28
    广东
  • 本文字数:1686 字

    阅读完需:约 6 分钟

前言

函数自定义库并不是定义函数的 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()语句类似,使用方法也一样。唯一区别是如果是该文件中的代码已经被包括了,则不会再次包括。这两条语句应该用于在脚本执行区间,同一个文件有可能被包括超过一次的情况下,确保它只被包括一次,以避免函数重定义以及变量赋值等问题。


发布于: 刚刚阅读数: 5
用户头像

迷彩

关注

我的工作是常年写bug|公众号:编程架构之美 2020-06-18 加入

修bug的菜鸟~公众号:“互联网有啥事”已改名为“编程架构之美”

评论

发布
暂无评论
【web 开发基础】PHP使用自定义函数库 (39)_web开发基础_迷彩_InfoQ写作社区