为什么不是';PHP中的t全局变量是否可以在require_once文件中运行?
在PHP脚本中,我在脚本开头使用为什么不是';PHP中的t全局变量是否可以在require_once文件中运行?,php,Php,在PHP脚本中,我在脚本开头使用$GLOBALS['someName']=someValue定义了一个全局变量。该全局变量随后由someFunction使用,该函数稍后将使用require加载到脚本中。如果我是正确的,我应该能够在脚本开头设置$someName=someValue,并使$someName全局可用。但是,当我这样做时,someName对someFunction不可用。它只在我使用$GLOBALS['someName']时起作用。为什么在PHP脚本开头定义时,$someName不能作
$GLOBALS['someName']=someValue
定义了一个全局变量。该全局变量随后由someFunction
使用,该函数稍后将使用require
加载到脚本中。如果我是正确的,我应该能够在脚本开头设置$someName=someValue
,并使$someName
全局可用。但是,当我这样做时,someName
对someFunction
不可用。它只在我使用$GLOBALS['someName']
时起作用。为什么在PHP脚本开头定义时,$someName
不能作为全局变量使用 在函数外部定义变量时,该变量在页面中是全局变量,但在函数中不可访问。要使变量成为全局变量并在其他函数中使用,有两种方法:
global
关键字。因此,只需在函数开头写入global$someName
,然后在函数中正常使用它们global$someName
,而是将它们直接用作$GLOBALS['someName']
有关更多信息,请参阅参考资料。好的,让我们举一个适当的例子: 我将在PHP中打开一个交互式终端,演示如何访问全局数据库
Interactive mode enabled
php > $myvar = "yves";
php > function testing() { echo $myvar; }; testing();
PHP Notice: Undefined variable: myvar in php shell code on line 1
php > function testing_with_global() { global $myvar; echo $myvar; }
php > testing_with_global();
yves
php >
或者,您可以使用$GLOBALS['myvar']
访问全局数据库
但你真的不想这么做。请参阅。您需要告诉PHP您希望在函数中使用全局变量,而不是创建局部变量。使用
global$someName
或像您那样使用$GLOBALS[“someName”]
。提示:使用GLOBALS而不是使用$\u SESSION或$\u COOKIES是非常糟糕的做法。即使$\u SESSION也更好、更安全……像$\u SESSION['someName'],当您提出这样的问题时,您需要提供源代码。帮助你要比阅读叙述容易得多。