0

我有一个文件,可以说它是 index.php,其中文件的开头包含“include.php”。在 include.php 中,我设置了一个像这样的变量:

<?php $variable = "the value"; ?>

然后在 index.php 中进一步向下,我有另一个包含,比如“include2.php”,它是这样包含的:

<?php include(get_template_directory_uri() . '/include2.php'); ?>

如何在“include2.php”中调用我在第一个包含中设置的“$variable”?

我使用的确切代码如下:

index.php 的第一行我有这一行

<?php include('switcher.php'); ?>

在 switcher.php 里面我有这个

<?php $GLOBALS["demo_color"] = "#fffffe"; ?>

如果我在 index.php 中使用它,它可以工作

<?php echo $GLOBALS["demo_color"]; ?>

但是,如果我使用以下代码包含另一个 php 文件

<?php include(get_template_directory_uri() . '/demo_color.php'); ?>

然后在 demo_color.php 我有这个代码:

<?php echo "demo color:" . $GLOBALS["demo_color"]; ?>

它输出的唯一内容是“演示颜色:”

为代码格式化而编辑

4

2 回答 2

3

可以简单地用在 include2.php 中,除非 include.php 的包含发生在不同的范围内(即在函数调用内)。看这里

如果您想完全明确在应用程序中使用该变量的意图,请使用其名称的 $GLOBALS["variable"] 版本,它始终指向variable在全局范围内调用的变量。

编辑:我对 php 5.3.10 进行了测试以重建它:

// index.php
<?php
include("define.php");
include("use.php");

// define.php
$foo = "bar";

// use.php
var_dump($foo);

这完全按预期工作,输出 string(3) "bar"。

于 2012-06-24T07:07:07.980 回答
1
<?PHP
//index.php
$txt='hello world';
include('include.php');

<?PHP
//include.php
echo $txt; //will output hello world

所以它确实有效。虽然似乎有一个更大的问题,因为这在未来可能难以维护。只是将变量放入全局命名空间并在不同的文件中使用它并不是最佳实践。

为了使代码更易于维护,使用类可能是一个想法,这样您就可以附加您需要显式的变量,而不仅仅是使用它们。因为周围的代码没有显示出来,所以不清楚你的确切需求是什么,但很可能代码可以放在类、函数等中。如果它是一个模板,你可以考虑一个显式的 set() 函数来发送变量数据到模板并在那里提取()它。

编辑:

此外,根据信息,首先将您的 error_reporting 设置为 E_ALL 并将 display_errors 设置为 1。因此,您会收到所有错误,因为您在更新的问题中放置的信息表明缺少变量被用作常量,这应该会引发错误这个地方。

于 2012-06-24T07:25:25.033 回答