gpt4 book ai didi

php - 为什么我不能将变量传递到 PHP 中的包含文件中?

转载 作者:行者123 更新时间:2023-12-02 05:21:45 25 4
gpt4 key购买 nike

我以前遇到过这个问题 before没有真正的分辨率。又出现了,希望高手帮帮忙。

我根据 $_GET 数组在我的 index.php 上设置了一个变量。所以我使用这个代码:

$admin = isset($_GET['admin']) ? $_GET['admin'] : "dashboard";

在此之下,我使用一个函数来包含我的布局:
include_layout("admin_header.php");

它调用这个函数:
function include_layout($template="") {
include(SITE_ROOT.DS.'layouts'.DS.$template);
}

到目前为止,一切都很好,一切正常。但是,如果我尝试从 admin_header.php 文件中回显 $admin 变量,我将一无所获。就好像没有设置一样。我什至使用 echo $admin; 来测试它就在我包含头文件之前,它在那里输出,但它不是从 admin_header.php 文件的角度设置的。

为什么会发生这种情况?是否与使用函数来包含有关,而不是直接包含它?如果是这样,为什么这很重要?

最佳答案

这是因为该变量超出范围,因为您使用函数包含文件。您要么需要将变量传递给另一个参数中的函数,要么将变量声明为 global在函数内

任何一个:

function include_layout($template="") {
global $admin;
include(SITE_ROOT.DS.'layouts'.DS.$template);
}

或者:
function include_layout($template="",$admin="") {
include(SITE_ROOT.DS.'layouts'.DS.$template);
}
include_layout("admin_header.php",$admin);

关于php - 为什么我不能将变量传递到 PHP 中的包含文件中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1897243/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com