我将一个PHP文件包含到我的WordPress网站的HEADER中,该网站搜索CSV文件并返回我需要的变量。我试图将它包含在标题中,因为它是我稍后将在整个站点中需要的变量。如果我测试它并尝试从包含的脚本中回显此变量,它可以正常工作。但是,在网站的其余部分,如果我尝试调用该变量,则不会返回任何内容。
我知道变量正在创建,因为我尝试回应它并且它有效。但是当我尝试从不同的脚本使用该变量时,它不起作用。是否需要某种代码将变量传递给网站的其他部分?
答案 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的范围。