PHP Conference Japan 2024

require_once

(PHP 4, PHP 5, PHP 7, PHP 8)

require_once 表达式与 require 相同,除了 PHP 会检查文件是否已被包含,如果已包含,则不会再次包含(require)。

有关 _once 行为以及它与其非 _once 同类兄弟的不同之处的信息,请参阅 include_once 文档。

添加注释

用户贡献的注释 4 条注释

bimal at sanjaal dot com
13 年前
如果您的代码在多个具有不同环境(脚本运行位置)的服务器上运行,以下想法可能对您有用

a. 不要在服务器上提供包含文件的绝对路径。
b. 动态计算完整路径(绝对路径)

提示
结合使用 dirname(__FILE__) 和后续对其自身的调用,直到到达 '/index.php' 的主页。然后,将此变量(包含路径)附加到您包含的文件。

我一个典型的例子是

<?php
define
('__ROOT__', dirname(dirname(__FILE__)));
require_once(
__ROOT__.'/config.php');
?>

而不是
<?php require_once('/var/www/public_html/config.php'); ?>

此后,如果您将代码复制粘贴到其他服务器,它仍然可以运行,无需任何进一步的重新配置。

[由 danbrown AT php DOT net 编辑:包含由 'JoeB' 于 2011 年 6 月 9 日提供的错别字修复(缺少 ')')。]
bobray99 at softville dot com
2 年前
在对返回值的返回文件使用 include_once 和 require_once 时要小心

fiddle2.php
<?php
return "Some String";

fiddle.php
<?php
$s
= require_once('fiddle2.php');
echo
"\n" . $s;
$s = require_once('fiddle2.php');
echo
"\n" . $s;

/* 输出
Some String
1
*/

第二次 require_once 出现时它返回 1,因为该文件已包含。
boda0128318 at gmail dot com
3 年前
1 - “require” 和 “require_once” 如果文件不存在则会抛出致命错误并停止脚本执行
存在并停止脚本执行

2 - “include” 和 “include_once” 会抛出警告,并且执行
继续

3 - “require_once” 和 “include_once” 正如其名称所示,
如果文件已使用 “require”、“require_once”、“include” 或 “include_once” 包含,则它们不会包含该文件。
"require"、"require_once"、"include" 或 "include_once"

尝试以下代码

创建一个名为 "index.php" 的文件

<?php

require "first.php"; // 这将包含该文件

include_once "first.php"; // 这将不会,因为它已使用 "require" 包含

require_once "first.php"; // 这将不会,因为它已使用 "require" 包含

?>

以及另一个名为 "first.php" 的文件,并编写以下标题

-------------------------------

<h1>大家好</h1>

--------------------------------

我希望这能帮到您
powtac at gmx dot de
9 年前
"require_once" 和 "require" 是语言结构,而不是函数。因此,它们应该在没有 "()" 括号的情况下编写!
To Top