12

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

<?php

$some_var = 'some string';

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

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

好吧,问题是:在函数之外使用“全局”关键字是否有意义???

4

2 回答 2

15

文档

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

本质上,您可以将函数胆量放在与函数声明不同的文件中。然后将这些胆量包含在函数中。如果您单独查看内容,这将给人一种用户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;
}
于 2012-04-25T01:06:52.103 回答
1

函数之外的全局关键字根本不做任何事情。但该文件可能包含在函数中。

我不使用它的另一件事是使我的代码更具可读性和结构化。我想在函数中使用 global 关键字访问的任何变量,我在主文件中使用 global 声明它,所以只需快速浏览一下,我就知道它在某处被引用为全局变量。(意味着无论如何都不要重命名,因为 other 在其他地方使用... :))

于 2012-04-25T01:19:54.203 回答