将变量从包含的PHP文件传递到父脚本

时间:2011-03-31 22:46:54

标签: php variables include global-variables

我将一个PHP文件包含到我的WordPress网站的HEADER中,该网站搜索CSV文件并返回我需要的变量。我试图将它包含在标题中,因为它是我稍后将在整个站点中需要的变量。如果我测试它并尝试从包含的脚本中回显此变量,它可以正常工作。但是,在网站的其余部分,如果我尝试调用该变量,则不会返回任何内容。

我知道变量正在创建,因为我尝试回应它并且它有效。但是当我尝试从不同的脚本使用该变量时,它不起作用。是否需要某种代码将变量传递给网站的其他部分?

3 个答案:

答案 0 :(得分:1)

变量默认仅限于功能级别,如果要在别处使用它们,则必须传递它们或将它们全局化。根据脚本的布局方式,您可以将其设置为对象属性,在这种情况下,它可以在对象可用的任何位置以及该对象的所有方法中使用 - 另一种选择是使用全局$ var,但这样做很糟糕想法和糟糕的编码实践 - 另一种是使用$ _SESSION ['myVar'] = $ var将其放入会话中,然后以相同的方式调用它 - 另一种方法是通过诸如$ database-> getRows之类的参数传递它($ var)然后在另一边“公共函数getRows($ var)”,现在通过传递它在该函数中有$ var。

答案 1 :(得分:0)

每次要在新功能中使用变量时,请确保global $variable变量,甚至在新脚本中。这将确保变量随处可用。

答案 2 :(得分:0)

3个文件:

a.php只会:

<?php
include("c.php");

var_dump("c is ".$c . " after include()");

function incit(){
    include("b.php");
    var_dump("b is ".$b . " inside incit()");
}

incit();
var_dump("b is ".$b . " after incit()");



?>

b.php:

<?php
$b="bear";
?>

c.php:

<?php
$c="car";
?>

输出如下:

string(24) "c is car after include()" 
string(24) "b is bear inside incit()" 
string(19) "b is after incit()" 

所以$ b仅在函数范围内定义,而另一方面$ c是“全局”定义。 因此,您必须观察使用include的范围。