为什么我不能直接在PHP中引用全局变量?

时间:2010-04-08 19:01:14

标签: php

我很想知道以下代码为何会有不同的行为?

以下不起作用:

$_variable &= global $_global;
echo $_variable;

以下作品:

global $global;
$_variable &= $_global;
echo $_variable;

4 个答案:

答案 0 :(得分:2)

global是一种特殊的语言结构,它不能像在示例1中那样用于操作。

答案 1 :(得分:2)

global关键字用于表示“使用此名称的全局变量,而不是本地变量”。最常见的用法是这样的:

$name = 'Slokun';

printName();
function printName() {
    global $name; // Use the global, rather than function-local, version
    echo $name;
}

会打印

Slokun

比较:

$name = 'Slokun';
printName();

function printName() {
    echo $name;
}

不会打印任何内容

答案 2 :(得分:1)

global关键字视为动词而不是形容词。你的第一个例子说“引用将全局称为$ _global分配给$ _variable”。但global不是形容词。第二个例子是正确的,对php说,“将$ _global视为全局”或“global-ify $ _global”,然后进行分配。

答案 3 :(得分:0)

你的代码应该是错的。通过引用传递值应为:

1)

$_variable =& $_global;

2)。

$_variable = & $_global;

3。)

$_variable = &$_global;

1~3是一样的。