require
PHP 内置函数,作用是引入或者包含外部的PHP 文件
原理:当本身PHP 文件被执行时,则外部文件的内容就将被包含进该自身的文件中;
注意:
- 当包含的外部文件发生错误时,系统将抛出错误异常,并且停止PHP 文件的执行。
- require() 会在每次出现的地方都重新调用文件
require 举例1
<?php$x = "aaaaaa\n";echo $x;?>
<?php
require 'a.php';
require 'a.php';
?>
b.php 文件代码运行结果: aaaaaa aaaaaa
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 只会判断它之前是否引用了,不会判断之后是否引用了。
