require

PHP 内置函数,作用是引入或者包含外部的PHP 文件
原理:当本身PHP 文件被执行时,则外部文件的内容就将被包含进该自身的文件中;

注意:

  • 当包含的外部文件发生错误时,系统将抛出错误异常,并且停止PHP 文件的执行。
  • require() 会在每次出现的地方都重新调用文件

require 举例1

  1. <?php
  2. $x = "aaaaaa\n";
  3. echo $x;
  4. ?>
<?php

require 'a.php';
require 'a.php';

?>

b.php 文件代码运行结果: aaaaaa aaaaaa

可以看出,上述 a.php 文件运行了两次。

require 举例2

<?php

$x = "aaaaaa\n";
echo $x;

?>
<?php

require 'a.php';
require 'a.php';
echo "b.php file : $x";

?>

b.php 文件代码运行结果: aaaaaa aaaaaa b.php file : aaaaaa

可以看出,上述 a.php 文件运行了两次。且在b.php 文件中调用到了a.php 文件中的变量。

require_once

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

注意:

  • 当外部的被包含进来的文件有错误时,也会报错,并终止运行
  • require_once 制定的文件如果已经被包含过,则不会再次包含,他可以避免函数重定义,变量重新赋值等问题。

require_once 举例1

<?php

$x = "aaaaaa\n";
echo $x;

?>
<?php

require 'a.php';
echo "----------\n";
require_once 'a.php';
echo "b.php file : $x";

?>

b.php 文件代码运行结果:

aaaaaa

b.php file : aaaaaa

可以看出,上述 b.php 文件,引用了两次 a.php ,但是只执行了一次。说明 require_once 没有被执行。

require_once 举例2

<?php

$x = "aaaaaa\n";
echo $x;

?>
<?php

require_once 'a.php';
echo "----------\n";
require 'a.php';
echo "b.php file : $x";

?>

b.php 文件代码运行结果:

aaaaaa

aaaaaa b.php file : aaaaaa

可以看出,上述 b.php 文件,引用了两次 a.php ,但是我们用了require_once ,为什么还是执行了两次呢?理解:require_once 只会判断它之前是否引用了,不会判断之后是否引用了。