php中的函数外的全局关键字

时间:2012-04-25 00:57:49

标签: php

正如我们所知,global关键字使变量(或对象,数组)在我们正在处理的当前函数中可见

<?php

$some_var = 'some string';

function __test(){
    global $some_var;
    echo $some_var; // some string
}

但是有些开发人员仍然在函数之外使用global关键字 起初看起来对我没有任何意义。

嗯,问题是:在函数???

之外使用'global'关键字是否有意义

2 个答案:

答案 0 :(得分:11)

来自docs

  

在函数外部使用全局关键字不是错误。如果文件包含在函数内部,则可以使用它。

基本上你可以将你的函数内容放在与函数声明不同的文件中。然后将这些内容包含在函数中。如果您单独查看使用函数外的global的用户,这将给人留下印象,但事实是,当解释此代码时,它将从中解释一个功能。

$name = "Jonathan";

function doSomething () {
  include( 'functionGuts.php' );
}

我们的functionGuts.php文件的内容可能是:

global $name;
echo "Hello, " . $name;

单独观看时,functionGuts.php会给人一种在功能之外使用global的印象,而实际上它正在被这样使用:

$name = "Jonathan";

function doSomething () {
  global $name;
  echo "Hello, " . $name;
}

答案 1 :(得分:1)

函数之外的全局关键字根本不起作用。但该文件可能包含在函数中。

我使用它的另一个原因是使我的代码可读且更有条理。我希望在函数中使用全局关键字访问的任何变量,我在主文件中使用global声明它,所以只需快速浏览一下,我知道它在某个地方作为全局引用。 (意思是不要重命名,因为其他地方在其他地方使用...... :))