在主index.php
文件中,header.php
包含。这两个文件都必须插入session.php,
database.php
等才能运行。但是当包含 header.php 时,有两个相同的require/include 文件,所以有两个相同的函数,查询。这会导致文件中出现一些问题。
这个问题的解决方案是什么?
问问题
5260 次
2 回答
13
使用include_once
而不是include
.
include_once 语句在脚本执行期间包含并评估指定的文件。这是一种类似于 include 语句的行为,唯一的区别是如果文件中的代码已经被包含,它将不会再次被包含。顾名思义,它将仅包含一次。
于 2012-06-03T18:59:36.607 回答
0
这是一个很老的问题,但我要回答这个问题,因为如果您正在寻找这个问题的答案,搜索引擎会指向这里。
您不能信任用户,他们使用include_once
或require_once
功能始终加载您的脚本。为了避免多次加载相同的脚本,您可以定义特定的常量并验证它是否已经定义。
您的脚本文件(test.php):
<?php
if(defined('MY_UNIQUE_SCRIPT')){
return true;
}
const MY_UNIQUE_SCRIPT = true;
echo __FILE__.PHP_EOL;
如果你调试它:
<?php
//Lets debug it
include 'test.php';
include 'test.php';
require 'test.php';
require 'test.php';
include 'test.php';
您的脚本仅加载一次,所有其他包含尝试都将被忽略。
基于一个示例,您可以实现更完美地满足您需求的类似解决方案。
于 2021-12-06T12:17:49.503 回答