• PHP中include和require的区别


    include和require都是一个将php导入到目前php文件中的一个函数,但是两个函数有区别。

    两则的不同之处在于:

    (1)include,每次获取,都要去对文件进行获取和评估,但是require,文件只处理一次,用文件中的内容将代替了require,所以说如果每次都去读取不同的代码的来说的话,include是比较有优势的,但是如果多次读取相同的代码来说的话,require的效率会比较高。

    如果将require("1.php")放在PHP文件执行的最前面,在PHP文件执行之前,会先去将文件中的内容来代替require,而include则是需求的时候去读取。

    总结一点而言:

         include是用到时读取,

       require是用之前读取,

         _once是用到的文件如果相同,那么只获取一次

    (2)两则在运行时候,如果遇到不存在的文件。

    1 <?php
    2     //r.php         
    3     $a = 1;
    4     echo $a / 0;
    5 ?>
    1 <?php
    2 //i.php
    3     $b = 2;
    4     echo $b / 0;
    5 ?>

    准备了两个php文件,一个是r.php,另外一个是i.php

    首先验证require:

     1 <?php
     2     require "r.php";
     3     require "a.php";
     4     echo $a;
     5 ?>
     6 /*
     7 
     8 Warning: Division by zero in C:xampphtdocs	est
    .php on line 3
     9 
    10 Warning: require(a.php): failed to open stream: No such file or directory in C:xampphtdocs	estp.php on line 3
    11 
    12 Fatal error: require(): Failed opening required 'a.php' (include_path='.;C:xamppphpPEAR') in C:xampphtdocs	estp.php on line 3
    13 */

    不存在a.php所以,程序在此终止

    接着验证下include:

     1 <?php
     2     include "r.php";
     3     include "a.php";
     4     echo $a;
     5 ?>
     6 /*
     7 
     8 Warning: Division by zero in C:xampphtdocs	est
    .php on line 3
     9 
    10 Warning: include(a.php): failed to open stream: No such file or directory in C:xampphtdocs	estp.php on line 3
    11 
    12 Warning: include(): Failed opening 'a.php' for inclusion (include_path='.;C:xamppphpPEAR') in C:xampphtdocs	estp.php on line 3
    13 1
    14 */

    程序顺利运行,能够输出得到$a的结果,虽然没有能够找到对应文件

    接着我们来验证下,require是否被文件中的内容代替(是否是无条件引用)

    1 <?php
    2     if(0){
    3         require "r.php";
    4     }
    5     echo $a;
    6 ?>

    result:

    1 Notice: Undefined variable: a in C:xampphtdocs	estp.php on line 5

    没有能够发现,所以是没有引用进来,我的PHP版本是PHP/5.5.1

    学习地址:

      http://www.cnblogs.com/xia520pi/p/3697099.html

  • 相关阅读:
    PythonStudy——socket 网络编程
    PythonStudy——异常处理
    PythonStudy——subprocess 模块
    PythonStudy——xlrd 与 xlwt 表格处理模块
    MySQLStudy——安装与环境部署
    Redo与undo在开发中的使用
    SQL语句的执行计划(oracle表的三种链接方式)
    SQLSERVER的兼容级别
    查看用户的SQL执行历史
    Spark是一种分布式的计算方案
  • 原文地址:https://www.cnblogs.com/zafuacm/p/4279127.html
Copyright © 2020-2023  润新知