php - _once 在文件操作中的真正含义是什么?
问题描述
我有一个让我很困惑的疑问,它是关于require_once
. 我在 StackOverflow 上看到了一个关于它的问题,但我仍然不确定我是否理解......
我知道 require 和 include 之间的区别在于,使用 require 时,脚本会发出致命错误并停止执行,而 include 不会。但是有一点我一直在问自己,真正的含义_once
,大多数人会说这样的话:PHP 会检查文件是否已经被包含,如果是,则不再包含(要求)它。
脚本如何只需要一次?我不明白这个,因为在我看来PHP脚本不像我们的浏览器下载并保存在机器上的CSS,所以不需要再次下载,我认为每次执行PHP脚本时,它将再次完成它的工作,无法理解它已经被需要,就像浏览器理解我们已经下载了 CSS 文件一样。
的真正含义是_once
什么?有人可以给我一个例子吗,因为我不太明白,我是初学者,我什至不知道我问的是不是一个正确的问题
如果可能的话演示一些代码,以便我最终理解
解决方案
想象一下这个场景。很高兴能够include
使用同一个文件,因为您可以多次使用它并获得不同的结果:
显示.php
echo $var;
索引.php
$var = 'Hello ';
include('display.php');
$var = 'World ';
include('display.php');
这输出:
你好世界
但是,有时这会导致问题。这可能是不同文件中的包含,因此您需要include_once
,但为了说明:
函数.php
function display($var) { echo $var; }
索引.php
include('functions.php');
display('Hello ');
//more code
include('functions.php');
display('World ');
产生一个致命错误:
致命错误:无法在第 6 行的 index.php 中重新声明 display()(之前在 index.php:1 中声明)
因此,如果您有数百个文件,并且根据某些逻辑/程序流程包含其他文件,但某些文件只能包含一次(如上所示),那么这就是用例。
推荐阅读
- python - ModelChoiceFilter 给出“选择一个有效的选择。该选择不是可用的选择之一。” 提交时
- triggers - 将触发器的名称设置为 Google 跟踪代码管理器上的事件操作
- javascript - JS - 拦截所有传入的 XML 和 Websocket 请求客户端
- vue.js - Vue:观察者可以用来观察计算属性吗?
- ionic-framework - 离子存储集法
- spring-boot - Spring-boot登录常用方法
- keras - Keras 训练输出中的“s/it”是什么意思?
- python - 创建python.exe文件时python中的数学函数不起作用
- postgresql - Postgres - 在 github 操作中运行 \c 命令
- python - 使用python从大表中删除大量记录的有效方法