2012-04-25 105 views
7

正如我们所知,全球关键字使变量(或对象,数组)可见,我们正在处理全球关键字

<?php 

$some_var = 'some string'; 

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

但是,一些开发公司仍然使用global关键字职能以外的电流函数内起初看起来它对我没有任何意义。

嗯,问题是:在函数外部使用'global'关键字是否有意义?

+0

您确定它正在使用的范围? – 2012-04-25 01:00:32

+0

我甚至在index.php文件中看到“global $ some_var” - 实际上它不会在任何函数中。我确信范围 – Yang 2012-04-25 01:02:13

+0

@metal_fan我怀疑你在一个单独的文件中看到了函数的内涵。 – Sampson 2012-04-25 01:10:48

回答

7

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; 
} 
0

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

我使用它的另一件事不是让我的代码可读和更有条理。任何我想在函数中使用全局关键字访问的变量,我在主文件中声明了全局变量,所以只需简短一眼,我知道它是作为全局引用的。 (意思是不要重命名,因为其他地方在其他地方使用... :))