Php 函数外部的变量是全局变量吗?
函数之外是类似sorta的全局作用域(与类似C的语言相比),但您必须做一件事来允许访问函数内的var:Php 函数外部的变量是全局变量吗?,php,variables,global-variables,global,Php,Variables,Global Variables,Global,函数之外是类似sorta的全局作用域(与类似C的语言相比),但您必须做一件事来允许访问函数内的var: <?php $foo = 1; function meh(){ global $foo; // <-- $foo now can be accessed } ?> 是。可以从任何位置访问它们,包括其他脚本。它们稍微好一点,因为您必须使用global关键字从函数中访问它们,这样可以更清楚地了解它们的来源和用途 但这并不会像某些OO语言中经常看到的那样,立即让它们
<?php
$foo = 1;
function meh(){
global $foo;
// <-- $foo now can be accessed
}
?>
是。可以从任何位置访问它们,包括其他脚本。它们稍微好一点,因为您必须使用
global
关键字从函数中访问它们,这样可以更清楚地了解它们的来源和用途
但这并不会像某些OO语言中经常看到的那样,立即让它们变得邪恶。如果他们提供了一个有效且易于理解的好解决方案,那么你就没事了。实际上有数百万成功的PHP项目使用这样声明的全局变量。您可能犯的最大错误是不使用它们,使您的代码变得更加复杂,而一开始使用它们是完全可以的D在您的示例中,
$foo
被创建为全局范围中的变量。(除非显示的脚本包含在另一个函数/方法范围内的中()
PHP没有真正的全局变量。您必须使用global$foo手动为其添加别名代码>语句来访问它们。(还有“任何全球事物都是坏的”的建议就是,坏建议。)如果我正确理解了你的问题,那真的不应该有问题。除非您将一个变量声明为全局变量,否则它将被限制在声明它的范围内,在本例中,上述代码定义在任何php文件中。您可以在meh()中声明另一个变量$foo,它将独立于在外部定义的$foo。在任何函数外部定义的所有变量都在全局范围内声明。如果要访问全局变量,有两种选择:
使用全局关键字
或者使用$GLOBALS
阅读更多
<?php
$foo = 1;
function meh(){
global $foo;
// <-- $foo now can be accessed
}
?>
function meh(){
global $foo;
// $foo now exists in this scope
}
<?php
$a = 1;
$b = 2;
function Sum()
{
global $a, $b;
$b = $a + $b;
}
?>
<?php
$a = 1;
$b = 2;
function Sum()
{
$GLOBALS['b'] = $GLOBALS['a'] + $GLOBALS['b'];
}
?>