zoukankan      html  css  js  c++  java
  • 2018/03/09 每日一学PHP 之 require_once require include include_once 包含文件的区别

    require_once require include include_once 方法的区别

    对于包含文件来说,如果只是使用框架来说的话,应该会很少碰到,因为框架底层对于文件的引用等做了很好的封装,这也导致了我们对于这块知识理解的欠缺。

    为什么要使用类似引入文件的函数?

      在一个PHP函数的生命周期中(就是一个程序执行的过程,比如echo 一个字符串),可能会用到很多个文件,这些个文件不可能都写在一个文件中,这样极不好管理,也不利于维护。

      也就产生了MVC框架,使得编码可以结构化,利于管理和维护。

      最简单的一个例子:

        单一入口:index.php + 随便一个控制器 + 随便一个视图 。

        就这样一个最简单的过程,就引用了3个文件,在实际运行中,文件数远远大于了这个数。

        关于引用文件来说,用到的也是这些方法。

    这些函数有什么作用呢?

      引入第三方库,等等..

      不过现在已经使用Composer管理了,引入一次就好了。

    下面主要是比较他们的区别。

       1:include()和require()的区别

        1:遇到错误,[引入路径出错,没有找到引用文件等]

           include()引入文件时,遇到错误会提示错误并继续执行;

           require()引入文件时,遇到错误时也提示错误但会终止程序的运行。

        2:使用位置

          require()语句一般放在脚本页面的最前面,在执行前,就先读入require()引入的文件,一旦出现错误,则立即退出程序,用于必须引入文件。、

          include()语句一般在用到时才引入,所以通常是放在流程控制的处理区段中,脚本在执行到它时,才会将文件包含进来 

        3:使用原则

          即require()是预加载机制,位置在脚本最前面,一开始就引入所有可能用到的文件;include()是即用即加载,位置灵活           

        

      2: include()、require()和include_once()、require_once()的区别

        1: include_once()、require_once() 相比于 include() 、require() 区别

           include()、require()执行即包含文件,不会对引入的文件进行比较判断,可能会出现重复包含的情况;

           而include_once()、require_once()在包含时会先判断文件是否已经被包含, 如果已经包含过了,如果已包含,则不再包含文件,这样的引入文件方式即可以节省资源,又可避免重复定义的错误

      

      3:ps

        虽然在 include_once() 和 require_once() 可以替你检查文件是否已经包含过,但是也不能因为这样就不检查或者直接使用函数引入,这种偷懒的心理是不对的,

    如果你都不知道在你的程序里面引用了文件有多少次,那么之后出了问题去排查,实有多么困难呢?

      

      会在之后学习中,如果在遇到问题,补充此文章内容。

  • 相关阅读:
    SQL SqlParameter
    C# 迭代器与yield关键字
    ADO.NET调用SQL存储过程
    C# XML
    C# MDI应用程序
    LINQ 基础
    C# 文件操作
    C# 操作注册表
    SQL从SQL SERVER中获取数据库结构信息
    Linux发展史
  • 原文地址:https://www.cnblogs.com/25-lH/p/8535007.html
Copyright © 2011-2022 走看看