PHP 语法:引入 PHP 脚本 require_once
问题
当我们在一个 PHP 脚本中引入另一个 PHP 脚本时,我们希望避免因失误而导致的重复引入,该怎么做呢?
回答
有两种方法,例如:require_once
、include_once
。
说明
本文主要介绍 require_once
方法。
通过 require_once
语句,可以将一个 PHP 脚本的内容引入另一个 PHP 脚本。如果在 require_once
引入某脚本之前已经引入名字相同的脚本,则 require_once
不会执行该引入操作。当 require_once
语句发生错误的时候,PHP 会生成致命错误(E_COMPILE_ERROR)并终止脚本,即不会再继续执行后面的代码,如果您学习过 require
语句,您应该会发现两者在这方面的表现是相同的。
语法
require_once '文件名';
示例
例 1 —— 引入文件失败
在本例中,我们尝试引入一个不存在的 PHP 脚本,看看 require_once
会怎么处理。
<html>
<body>
<p>这是第一个句子。</p>
<?php
require_once 'fail.php';
?>
<p>这是第三个句子。</p>
</body>
</html>
运行结果:
这是第一个句子。
Warning: require_once(fail.php): failed to open stream: No such file or directory in F:\index.php on line 7
Fatal error: require_once(): Failed opening required 'fail.php' (include_path='.;C:\php\pear') in F:\index.php on line 7
从运行结果可以看出,当 require_once
引入脚本失败的时候,不会接着执行后面的代码。
例 2 —— 正常引入
假设我们有一个名为 words.php
的标准脚本:
<?php
echo "<p>这是第二个句子。</p>";
?>
然后我们尝试在同一文件夹下的另一个 PHP 脚本中通过 require_once
语句引入这个 words.php
脚本:
<html>
<body>
<p>这是第一个句子。</p>
<?php
require_once 'words.php';
?>
<p>这是第三个句子。</p>
<?php
require_once 'words.php';
?>
</body>
</html>
运行结果:
这是第一个句子。
这是第二个句子。
这是第三个句子。
从运行结果可以看出,我们在第二次引入 words.php
脚本无效,所以 require_once
可以帮助我们避免因失误而导致重复引入同一 PHP 脚本。