PHP:全局变量范围
我有一个单独的文件,其中包含了具有设置值的变量。 如何使这些变量成为全局变量 例如,我在PHP:全局变量范围,php,Php,我有一个单独的文件,其中包含了具有设置值的变量。 如何使这些变量成为全局变量 例如,我在values.php文件中有值$myval。在index.php中,我调用了一个需要$myval值的函数 如果我添加include(values.php)在index.php文件的begining中,它释放了函数内部的作用域。我将在index.php文件的多个函数中调用同一变量。在函数内部使用: global $myval; 在函数内部,使用全局关键字或从以下位置访问变量: 或者,为了更好的可读性:使用$G
values.php
文件中有值$myval
。在index.php
中,我调用了一个需要$myval
值的函数
如果我添加
include(values.php)
在index.php文件的begining中,它释放了函数内部的作用域。我将在index.php文件的多个函数中调用同一变量。在函数内部使用:
global $myval;
在函数内部,使用
全局
关键字或从以下位置访问变量:
或者,为了更好的可读性:使用$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)
与在同一文件中声明变量相同
function doSomething($arg1, $arg2) {
global $var1, $var2;
// do stuff here
}
在函数开头使用global关键字将使这些变量进入作用域。比如说
$outside_variable = "foo";
function my_function() {
global $outside_variable;
echo $outside_variable;
}
您不能将变量传递到函数中有什么原因吗
myFunction($myVariable)
{
//DO SOMETHING
}
传递变量比使用全局变量要好得多。您可能想问问自己为什么要使用全局变量,以及是否有更好的方法来实现同样的目标。全局变量几乎总是一个坏主意。include与变量作用域无关,有那么难调查吗?如果我说某个东西有全局作用域,我希望当我在脚本中包含定义了该变量的文件时,它将保留在全局作用域中,并且可以这样处理。是的,在发现它不起作用后,include似乎只是在每次脚本运行时为我重新定义变量。PHP文档根本没有提到这一点。
myFunction($myVariable)
{
//DO SOMETHING
}