_once 在文件操作中的真正含义是什么?

时间:2021-02-20 00:41:47

标签: php

我有一个让我很困惑的疑问,它是关于 require_once。我在 StackOverflow 上看到了一个关于它的 question,但我仍然不确定我是否理解...

我知道 require 和 include 的区别在于使用 require 时,脚本会发出致命错误并停止执行,而 include 不会。但是有件事我一直在问自己,_once 的真正含义,大多数人都这么说:PHP 会检查文件是否已经被包含,如果是,则不包含(需要)再次
如何只需要一次脚本?我不明白这个,因为在我看来PHP脚本不像我们浏览器下载并保存在机器上的CSS,所以不需要再次下载,我认为每次执行PHP脚本时,它将再次执行它的工作,无法理解它已经被要求,就像浏览器理解我们已经下载了 CSS 文件一样。

_once 的真正含义是什么?谁能给我举个例子,因为我不是很懂,我是初学者,我什至不知道我问的问题是否正确

如果可能的话,演示一些代码,以便我最终理解

1 个答案:

答案 0 :(得分:1)

想象一下这个场景。很高兴能够include 同一个文件,因为您可以多次使用它并产生不同的结果:

display.php

echo $var;

index.php

$var = 'Hello ';
include('display.php');

$var = 'World ';
include('display.php');

输出:

<块引用>

你好 世界

但是,有时这会导致问题。这可能是不同文件中的包含,因此您需要include_once,但为了说明:

functions.php

function display($var) { echo $var; }

index.php

include('functions.php');
display('Hello ');

  //more code

include('functions.php');
display('World ');

产生致命错误:

<块引用>

致命错误:无法在第 6 行的 index.php 中重新声明 display()(之前在 index.php:1 中声明)

因此,如果您有数百个文件,有些文件根据某些逻辑/程序流程包含其他文件,但有些文件只能包含一次(如上所示),那么这就是用例。