• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    PHP中include和require的使用详解

    在PHP中,有两种包含外部文件的方式,分别是include和require。他们之间有什么不同呢?

    如果文件不存在或发生了错误,require产生E_COMPILE_ERROR级别的错误,程序停止运行。而include只产生警告,脚本会继续执行。

    这就是它们最主要的区别,其他方面require基本等同于include。

    除了普通的require和include之外,还有require_once和include_once,他们的作用是:

    我们来看些例子:

    // a.php 不存在
    include "a.php"; // warning
    // require "a.php"; // error
    
    echo 111; // 使用include时111会输出
    
    // file1.php 中只有一行代码echo 'file1';
    require_once 'includeandrequire/file1.php'; // file1
    require_once 'includeandrequire/file1.php'; // noting
    
    include_once 'includeandrequire/file1.php'; // noting
    include_once 'includeandrequire/file1.php'; // noting
    
    require 'includeandrequire/file1.php'; // file1
    require 'includeandrequire/file1.php'; // file1
    
    require 'includeandrequire/file1.php'; // file1
    require 'includeandrequire/file1.php'; // file1
    
    

    我们可以看出当第一个_once加载成功后,后面不管是require_once还是include_once,都不会再加载这个文件了。而不带_once的则会重复加载文件。

    file2.php
    
    ?php
    
    echo 'file2:' . $a, PHP_EOL;
    echo 'file2:' . $b, PHP_EOL;
    $b = "file2";
    
    myFile.php
    
    ?php
    
    $a = 'myFile';
    $b = 'youFile';
    require_once 'includeandrequire/file2.php';
    echo $a, PHP_EOL;
    echo $b, PHP_EOL;
    
    // 输出结果
    // file2:myFile
    // file2:youFile
    // myFile
    // file2
    
    file3.php
    ?php
    
    $c = 'file3';
    
    myFile.php
    ?php
    function test(){
        require_once 'includeandrequire/file3.php';
        echo $c, PHP_EOL; // file3
    }
    test();
    echo $c, PHP_EOL; // empty
    
    

    被包含文件中可以获取到父文件中的变量,父文件也可以获得包含文件中的变量,但是,需要注意_once的一个特殊情况。

    function foo(){
        require_once 'includeandrequire/file3.php';
        return $c;
    }
    
    for($a=1;$a=5;$a++){
        echo foo(), PHP_EOL;
    }
    
    // file3
    // empty
    // empty
    // empty
    // empty
    
    

    使用_once并循环加载时,只有第一次会输出file3.php中的内容,这是为什么呢?因为现在的变量范围作用域在方法中,第一次加载完成后,后面的的文件不会再被加载了,这时后面四次循环并没有$c被定义,$c默认就是空值了。

    如果两个方法中同时用_once加载了一个文件,第二个方法还会加载吗?

    function test1(){
        require_once 'includeandrequire/file1.php';
    }
    function test2(){
        require_once 'includeandrequire/file1.php';
    }
    test1(); // file1
    test2(); // empty
    
    

    抱歉,只有第一个方法会加载成功,第二个方法不会再次加载了。

    那么,我们在日常的开发中,使用哪个更好呢?

    include和require的文件如果有return,可以用变量接收retun回来的数据,另外它们还可以加载非PHP文件以及远程文件(远程加载需要确定php.ini中的allow_url_include为On),如:

    file4.php
    ?php
    
    return 'file4';
    
    file4.txt
    可以吧
    
    myFile.php
    ?php
    $v = require 'includeandrequire/file4.php';
    echo $v, PHP_EOL; // file4
    
    include 'includeandrequire/file4.txt';
    // 可以吧
    
    include 'https://www.baidu.com/index.html';
    // 百度首页的html代码
    
    

    这下我们对于include和require的了解就非常深入了吧,这两个加载文件的方式并不复杂,但也很容易出现一些坑,特别是_once在方法中使用的时候一定要特别注意。最后,给一个小福利,封装一个一次性加载目录中所有文件的方法:

    function include_all_once ($pattern) {
        foreach (glob($pattern) as $file) { 
            require $file;
        }
    }
    
    include_all_once('includeandrequire/*');
    
    

    测试代码:github.com/zhangyue050…

    以上就是PHP中include和require的使用详解的详细内容,更多关于PHP include和require的使用的资料请关注脚本之家其它相关文章!

    您可能感兴趣的文章:
    • PHP中include和require的区别实例分析
    • php使用include 和require引入文件的区别
    • PHP中include()与require()的区别说明
    • PHP中include/require/include_once/require_once使用心得
    • 简单谈谈PHP中的include、include_once、require以及require_once语句
    • PHP中require和include路径问题详解
    • PHP包含文件函数include、include_once、require、require_once区别总结
    • PHP中include与require使用方法区别详解
    • php include和require的区别深入解析
    • PHP中include()与require()的区别说明
    上一篇:PHP中使用DOMDocument来处理HTML、XML文档的示例
    下一篇:PHP中的错误及其处理机制
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    PHP中include和require的使用详解 PHP,中,include,和,require,的,