如何将php变量传递给.php包含?

时间:2012-06-24 07:02:44

标签: php wordpress variables include

我有一个文件,让我们说它是index.php,其中文件的开头有一个include for“include.php”。在include.php中我设置了一个这样的变量:

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

然后在index.php中进一步向下我有另一个包含,说“include2.php”包括这样:

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

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

我使用的确切代码如下:

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

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

Inside 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"]; ?>

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

为代码格式编辑

2 个答案:

答案 0 :(得分:3)

它只是可以在include2.php中使用,除非包含include.php发生在不同的范围内(即在函数调用内)。 see here

如果您想完全明确在整个应用程序中使用变量的意图,请使用其名称的$ 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);

这完全符合预期,输出字符串(3)“bar”。

答案 1 :(得分: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.因此,您收到所有错误,因为您在更新的问题中放置的信息表明缺少的变量用作应该引发的常量错误到处都是。