PHP:全局变量范围

时间:2011-11-04 13:37:44

标签: php

我有一个单独的文件,其中包含具有其设置值的变量。 如何将这些变量设为全局?

实施例。我在$myval文件中有值values.php。在index.php我调用了一个需要$myval值的函数。

如果我在index.php文件的beggining中添加include(values.php);,则会丢失函数内的范围。我将在index.php文件中的多个函数中调用相同的变量。

5 个答案:

答案 0 :(得分:7)

在函数内部,使用global关键字或访问the $GLOBALS[] array中的变量:

function myfunc() {
  global $myvar;
}

或者,为了更好的可读性:使用$GLOBALS[]。这清楚表明您正在访问全球范围内的某些内容。

function myfunc() {
  echo $GLOBALS['myvar'];
}

最后,

尽可能避免使用全局变量开始,而是将其作为参数传递给函数:

function myfunc($myvar) {
  echo $myvar . " (in a function)";
}

$myvar = "I'm global!";
myfunc($myvar);
// I'm global! (in a function)

答案 1 :(得分:2)

在你的功能中使用:

global $myval;

PHP - Variable scope

答案 2 :(得分:1)

在函数开头使用global关键字会将这些变量放入范围。例如,

$outside_variable = "foo";

function my_function() {
   global $outside_variable;
   echo $outside_variable;
}

答案 3 :(得分:1)

你有没有理由不能将变量传递给你的函数?

myFunction($myVariable)
{
  //DO SOMETHING
}

传递变量而不是使用全局变量是一个好主意。

答案 4 :(得分:0)

与在同一文件中声明变量相同。

function doSomething($arg1, $arg2) {
    global $var1, $var2;
    // do stuff here
}