在PHP编程中,经常会通过require、require_once来引用另一个文件,都可以达到引用文件的目的,但他们之间还是有一些细微的区别的,下来就来详细的说一下。

php require 的理解

require:php的内置函数,作用是引入或者包含外部的php文件

原理:当本身php文件被执行时,则外部文件的内容就将被包含进该自身的文件中;也可以理解为,外部所要引用的文件的代码,会替换 require() 的代码部份,并形成一个新的php文件并执行代码。

注意:

1、当包含的外部文件发生错误时,系统将抛出错误提示,并且停止php文件的执行。

2、require()会在每一处出现调用的地方都重新调用(加载文件)。

举例1:

a.php

<?php 
$str = 'http://feiniaomy.com';
?>

b.php

<?php
    require 'a.php';
    echo $str;
?>

运行b.php输出结果:http://feiniaomy.com

举例2:

a.php

<?php 
echo "Hello";
?>

b.php

<?php
    require 'a.php';
    require 'a.php';
?>

运行b.php结果:Hello Hello

注:运行结果,输出了两个 Hello,则说明 a.php的代码被引用并执行了两次

php require_once 的理解

require_once:它的作用与 require 的作用是一样的,都是引用或包含外部的一个php文件

原理:当含有 require_once 的php文件被执行时,则被 require_once 指定的外部文件都会包含进来,与其它的代码组成一个新的 php 文件,并开始执行

注意:

1、当外部的被包含进来的文件有错误时,也会跑错,并终止运行

2、require_once 指定的文件如果已经被包含过,则不会再次包含。它可以避免函数重定义,变量重新赋值等问题。

举例:

a.php

<?php 
echo "Hello";
?>

b.php

<?php
    require 'a.php';
    require_once 'a.php';
?>

运行 b.php 的结果为:Hello

注:结果只输出了一个 Hello ,说明 a.php 里面的代码只被引用了一次。